본문 바로가기

Java/백준

(106)
[JAVA] 백준 24060 알고리즘 수업 - 병합 정렬 1 24060번: 알고리즘 수업 - 병합 정렬 1 (acmicpc.net) 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net - N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. - 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A에 k번째 저장되는 수를 구하기 - 저장 횟수가 k보다 작으면 -1 출력 풀이 과정 병합 정렬 알고리즘 - 배열의 요솟수가 2개 이상인 경우 - 배열의 앞부분을 병합 정렬로 정렬 - 배열의 뒷부분을 병합 정렬로 정렬 - 배열의 앞부분..
[JAVA] 백준 25501 재귀의 귀재 25501번: 재귀의 귀재 (acmicpc.net) 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net - 어떤 문자열이 팰린드롬인지 판별하는 문제는 재귀 함수를 이용해 쉽게 해결할 수 있음 - 아래 코드의 isPalindrome 함수는 주어진 문자열이 팰린드롬이면 1, 팰린드롬이 아니면 0을 반환하는 함수 public class Main{ public static int recursion(String s, int l, int r){ if(l >= r) return 1; else if(s.charAt(l) != s.charAt(r)) return 0; else ret..
[JAVA] 백준 10870 피보나치 수 5 10870번: 피보나치 수 5 (acmicpc.net) 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net - n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램 - 피보나치 수는 0과 1로 시작. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1 - 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 됨 Fn = Fn-1 + Fn-2 (n ≥ 2) ex) n=17 0,1.1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597 ..
[JAVA] 백준 20920 영단어 암기는 괴로워 20920번: 영단어 암기는 괴로워 (acmicpc.net) 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net - 길이가 M이상인 단어들만 외움 우선순위 1. 자주 나오는 단어일수록 앞에 배치 2. 해당 단어의 길이가 길수록 앞에 배치 3. 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치 풀이 과정 getOrDefault - 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드 - HashMap의 경우 동일 키 값을..
[JAVA] 백준 26069 붙임성 좋은 총총이 26069번: 붙임성 좋은 총총이 (acmicpc.net) 26069번: 붙임성 좋은 총총이 첫번째 줄에는 사람들이 만난 기록의 수 $N\ (1 \le N \le 1\ 000)$이 주어진다. 두번째 줄부터 $N$개의 줄에 걸쳐 사람들이 만난 기록이 주어진다. $i + 1$번째 줄에는 $i$번째로 만난 사람들의 이름 $A_i$ www.acmicpc.net - 무지개 댄스를 추지 않고 있던 사람이 무지개 댄스를 추고 있던 사람을 만나게 된디면, 만난 시점 이후로 무지개 댄스를 추게됨 - 기록이 시작되기 이전 무지개 댄스를 추고 있는 사람은 총총이 뿐이라고 할 때, 마지막 기록 이후 무지개 댄스를 추는 사람이 몇명인지 구하는 프로그램 - 총총이의 이름은 ChongChong으로 주어지며, 기록에서 1회 이상 주..
[JAVA] 백준 25192 인사성 밝은 곰곰이 25192번: 인사성 밝은 곰곰이 (acmicpc.net) 25192번: 인사성 밝은 곰곰이 첫번째 새로운 사람이 들어온 뒤 pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤 pjshwa와 chansol은 다시 곰곰티콘으로 인사했다. www.acmicpc.net 풀이 과정 - 첫 번째 새로운 사람이 들어온 뒤 pjshwa, chansol, chogahuio5은 모두 곰곰티콘으로 인사 - 두 번째 새로운 사람이 들어온 뒤, pjshwa, chansol은 다시 곰곰티콘으로 인사 - lms0806은 새로운 사람이 들어왔으므로 처음은 곰곰티콘으로 인사하고, 그 뒤로는 일반 채팅을 함 - 중복 제거해야 하니까 HashSet 사용 - "Enter"가 들..
[JAVA] 백준 1037 약수 1037번: 약수 (acmicpc.net) 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 풀이 과정 - 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램 - 입력값 정렬 후에 제일 작은 값 * 제일 큰 값 정답 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWrit..
[JAVA] 백준 1010 다리 놓기 1010번: 다리 놓기 (acmicpc.net) 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 ..