본문 바로가기

Algorithm/Baekjoon82

[백준] 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.
[백준] 1546번 : 평균 - Java https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 주의점 상대/절대 오차 : 10-2 (= 0.01)까지 허용 두 번째 줄 : 공백 기준으로 숫자 입력 받음 입력 받은 값 중 최대값 M 찾기 ➡ 모든 점수에 (점수 / M) * 100 연산 풀이 1. Scanner + Array import java.util.Arrays; import java.util.Scanner; public class Main { public static void ma.. 2022. 3. 4.
[백준] 3052번 : 나머지 - Java https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net HashSet 1. 정의 자바 Collection 중 Set 의 파생클래스 Set은 집합의 개념으로 보면 됨 2. 특징 중복 허용 X 순서 개념 X ➡ Collections.sort() 사용 불가(정렬하려면 List (리스트)로 변환 필요) 3. 적용 입력 받은 숫자들의 각 나머지 값에서 서로 다른 숫자의 개수 세기 HashSet 사용 시 원소에 이미 저장되어 있어 중복일 경우 추가 저장 X, 중복 아닐 때만 저장 가능 4. 결론 HashSet에 들어간 원소의 개수 .. 2022. 3. 3.
[백준] 2577번 : 숫자의 개수 - Java https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. 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 value = (in.nextInt() * in.nextInt() * in.nextInt()); String str = Integer.toString(value); //int ➡ String 형변환 i.. 2022. 3. 3.