일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 피온4
- 강아지 스마트 펜스
- 박스#강아지집#만들기
- 부르지마세요
- Ai
- 독서감상문
- 자바 인강
- 스쿼드 메이커
- 아두이노#작품#사료급식기
- 강아지 #박스집 #복층
- 안녕 디지몬
- 내일배움카드
- 랜덤
- 혼술 술자리 인싸앱
- 부의감각
- #FIFAONLINE4
- 안드로이드 #앱개발#계산기
- 홈CCTV
- fifaonline4
- 안드로이드
- 안드로이드#앱만들기#알바
- 안드로이드 그림판#그림메모장#낙서장
- 바이트디그리
- D-ID
- 랜덤스쿼드
- Java & SpringBoot로 시작하는 웹 프로그래밍
- 불끌때
- K디지털크레딧
- 패스트캠퍼스
- fifaonline
- Today
- Total
목록Java/백준 알고리즘 (20)
LC Studio
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력 첫째 줄에 상수의 대답을 출력한다. 문자열을..
문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 3가지 포인트를 생각하고 풀었다. 1. 대문자 소문자 처리 -> ascill코드를 활용 2. 가장많은 숫자 처리 -> 알파뱃 배열을 만들어 입력값을 나눠저장 후 배열 내 비교 3. 가장많은 수 중복처리 -> swich 문을 활용 import java.io.BufferedRead..
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 복잡했지만 차근차근 식을 세워 풀어보았다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main{ public static void main(String[] args)throws I..
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(n)의 생성자라고 한..
문제. 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 코드가 조금 복잡하긴 하지만, 도움없이 스스로의 힘으로 풀어내서 뿌듯하다. 자세한 설명은 주석을 참고바란다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class..
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 위와같은 문제였다. 배열에 값을 담아, 각 문자별로 비교하는 방식으로 작성했다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main{ public static void main(St..
알고리즘 문제를 풀수록 내 수준이 드러나고있다. 너무 부족한게 느껴진다. 1. 언어에 대한 이해 부족 아직 Java에 대해 정말 잘 모른다는 것을 느낀다. 2. 알고리즘 적 사고? 문제를 어떤 방향으로 바라보고 풀지 계획하는 능력이 부족하다. 길이 안보인다. 그래서 매번 돌아돌아 어렵게 풀어내는 것 같다ㅋㅋ 어쨋든, 3052번 나머지문제는, (두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.) 위와같이 나머지들 중 서로다른 나머지의 개수를 출력하라고 한다. 문제를 읽..
첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다. 위와같은 문제이다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main{ public static void main(String[] args)throws IOException{ BufferedReader br = new Buffe..
문제를 너무 어렵게 생각했나... 처음 입력받는 N의 값이 1. 10이하 1자리수 2. 10이상 2자리수인 경우를 나눠 알고리즘을 설계해 보았다. package test; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); int i = 1; if(N10){ C = C%10; } i = i+1; } } else{ int A = N/10; int B = N%10; int C = A + B; if(C>10){ C = C%10; } while( !(Integer.toString(B).con..
Scanner을 사용하여 입력받는 것이 아닌, 더 빠른 방식으로 입력받으라는 문제였다. (Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.) 라고 나와있었다. BufferedReader과 BufferedWriter에 대해 잘 몰라 공부하며 해결해 보았다. package test; import java.io.*; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ public..