본문 바로가기

Algorithm277

[백준] 2908번 : 상수 - Java https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 주의점 입력 받는 두 수 : 세 자릿수 고정 + 공백 기준으로 구분됨 입력 받은 두 수를 뒤집은 값 중 더 큰 값 출력 구현 방법 Scanner + StringBuilder.reverse() BufferedReader + StringTokenizer + StringBuilder.reverse() System.in.read() + 연산 풀이 1. Scanner + StringBuilder.reverse() im.. 2022. 3. 21.
[백준] 1152번 : 단어의 개수 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 주의점 문자열 앞뒤에 공백이 있을 수 있음 = 공백의 개수 대로 숫자를 세면 예외 발생할 수 있음 구현 방법 1. 입력 1.1. Scanner & BufferedReader 많이 쓰는 입력 방식 1.2. System.in.read() 기본 입력 스트림 buffer 사용 X 원시 입력 형태로 문자 하나씩 읽어들여 문자가 공백인지 아닌지에 따라 count++ 하기 2. 공백 기준으로 분리 2.1.. 2022. 3. 21.
[백준] 1157번 : 단어 공부 - Java https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 주의점 가장 많이 반복된 문자가 2개 이상이면 ? 출력 대문자, 소문자 구분 X 출력 문자 = 대문자 참고 자료 아스키코드 표 구현 방법 System.in.read() read(): 값을 문자 타입으로 받음 문자를 하나씩만 가져올 수 있음 + 아스키코드로 변환하여 가져옴 Scanner, BufferedReader 사용하지 않고 입력값을 받을 수 있음 Buffer (InputStream) 사용하기에 효율적임 IOException 처.. 2022. 3. 18.
[백준] 2675번 : 문자열 반복 - Java https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 풀이 1. Scanner + charAt() import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int T = in.nextInt(); for(int i = 0; i < T; i++) { int R = in.nextInt.. 2022. 3. 18.
[백준] 10809번 : 알파벳 찾기 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 주의점 입력으로 주어지는 문자열 : 알파벳 소문자 a ~ z 까지 모두 출력 ➡ 주어진 문자열의 각 문자가 처음으로 나오는 위치 출력 문자 위치 : 0부터 시작(문자열 첫 문자의 위치 = 0) arr 배열의 인덱스(원소 위치) ch 가 갖고 있는 문자 인코딩값(=아스키코드값과 동일)에 - 'a' or - 97 해주기 a: 97 이라는 값에 대응됨(10진수) 문자열을 앞에서부터 검사할 .. 2022. 3. 16.
[백준] 11720번 : 숫자의 합 - Java https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 구현 방법 charAt() 해당 문자의 아스키코드 값 반환 해당 문자 - 48 / 해당 문자 - '0' : 이렇게 해야 입력 받은 값 그대로 사용 가능 getBytes() 1. 정의 String을 하나의 byte 배열로 변환해주는 메소드 2. 특징 java.lang.String 패키지에 있는 메소드 ➡ import문 불필요 해당 문자 - 48 / 해당 문자 - '0' : 이렇게 처리해야 아스키코드값 ➡ 입력 받은 값 그대로 사용 가능 풀이 1. Scanner + charAt() .. 2022. 3. 16.
[백준] 11654번 : 아스키 코드 - Java https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 1. Scanner import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); //String으로 입력 받기 //But, Scanner: 정규식이 많이 이용되기에 성능 low //charAt()으로 문자열 잘라 문자로 변환 //int 타입 변수에 저장 ➡ 문자에 대응하는 값, 즉 아스키코드값 저장.. 2022. 3. 16.
[백준] 1065번 : 한수 - Java https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 주의점 1. 정의 1.1. 한수 각 자릿수가 등차수열을 이루는 수 1.2. 등차수열 연속된 두 개의 수의 차이가 일정한 수열 1.3. 예시1 - 753 각 자릿수 : 7, 5, 3 각 자릿수의 차이 : -2 씩 일정하게 감소 ➡ -2 = 공차 1.4. 예시2 - 222 공차 = 0 2. 적용 2.1. 문제 1보다 크고, 입력 받은 값보다 작거나 같은 한수의 개수 출력 2.1. 범위 1 ~ 9 비교할 .. 2022. 3. 15.
[백준] 4673번 : 셀프 넘버 - Java https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 주의점 한 줄에 하나씩 출력 - a lot more numbers 부분은 출력 X 양의 정수(0보다 크고 10000보다 작은 수) 중, 셀프 넘버 출력 풀이 public class Main { public static void main(String[] args) { boolean[] arr = new boolean[10001]; //index 범위.. 2022. 3. 14.
[백준] 15596번 : 정수 N개의 합 - Java https://www.acmicpc.net/problem/15596 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net 풀이 class Test { long sum(int[] a) { long sum = 0; for(int i = 0; i < a.length; i++) { sum += a[i]; } return sum; //long type } } 2022. 3. 14.
[백준] 4344번 : 평균은 넘겠지 - Java https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 주의점 소수점 셋째 자리까지 출력 각 테스트 케이스의 첫 번째 수 : 해당 케이스의 입력 개수 평균을 넘는 학생 비율 : 퍼센트(%)로 출력 풀이 1. Scanner import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] arr; int C = in.nextInt(); for(int i = 0 ; i.. 2022. 3. 5.
[백준] 8958번 : OX퀴즈 - Java https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 주의점 각 테스트 케이스마다 점수 출력 연속된 O의 개수만큼 점수 누적 후 합산(X가 나올 시 해당 순서의 누적값은 0으로 초기화) String.getBytes() 문자열을 byte 단위의 배열로 반환시키는 메서드 for-each 문 향상된 for문이라고도 함 본 문제에서 String.getBytes()가 반환한 배열을 활용할 수 있음 풀이 1. Scanner + Array i.. 2022. 3. 5.