본문 바로가기

728x90

전체 글

(219)
[백준][코틀린][1080] 행렬 https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 문제 풀이 1. 주어진 입력의 A 행렬을 matrix 에 B 행렬을 target 에 저장한다. 2. 이중 for 을 이용하여 matrix 행렬을 탐색한다. 3. matrix[i][j] != target[i][j] 인 경우 이면서 i + 2 1, 1 -> 0) 으로 바꾸고 바꾼 횟수를 count 에 저장한다. 4...
[백준][코틀린][11399] ATM https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 풀이 1. 시간 정보를 P 배열에 저장한다. 2. 배열 P를 오름 차순 정렬 한다. 3. 결과가 P[0] + (P[0] + P[1]) + (P[0] + P[1] + P[2]) ... 로 되므로 이중 for 문을 이용하여 결과를 구한다. 4. i 는 0부터 N까지 탐색하고 j는 0부터 i까지 탐색한다. 코드 import java.io.* fun main(args: Array) { val br = BufferedReader(..
[백준][코틀린][1931] 회의실 배정 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 풀이 1. 주어지는 입력을 회의 (시작 시간, 종료 시간)을 저장하는 List 를 선언한다. 2. 1번에서 저장된 List 를 종료 시간을 기준으로 오름 차순 정렬 한다. 종료 시간이 같을 경우 시작 시간을 기준으로 오름 차순으로 정렬한다. 3. 결과를 출력하는 result 와 기준이 되는 시간을 저장하는 time 을 선언한다. 4. List 의 크기만큼 For 문을 돌려서 다음의 조건을 확인 한다. 5. list item 의 시작 시간이 time 보다 큰지 확인 한다. 6. 5번 조건에 해당될 경우 tim..
[백준][코틀린][11047] 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제 풀이 1. 주어진 조건의 입력 값을 저장하는 크기가 11인 배열 A를 선언한다. 2. i = N 부터 1까지 아래의 조건에 따라 탐색 한다. 2-1. A[i] > K 이면 동전의 가치가 목표하는 값보다 크므로 다음 탐색을 한다. 2-2. A[i] = K 이면 목표하는 값에 도달했으므로 결과를 출력한다. 이때 동전을 사용했으므로 ..
[백준][코틀린][14395] 4연산 https://www.acmicpc.net/problem/14395 14395번: 4연산 첫째 줄에 정수 s를 t로 바꾸는 방법을 출력한다. s와 t가 같은 경우에는 0을, 바꿀 수 없는 경우에는 -1을 출력한다. 가능한 방법이 여러 가지라면, 사전 순으로 앞서는 것을 출력한다. 연산의 아 www.acmicpc.net 문제 풀이 1. 문제를 4가지 연산에 대해서 BFS 를 수행한다. 이때 연산자 순서(*, +, -, /) 에 맞게 탐색을 한다. 2. 이미 연산된 결과를 확인하기 위해서 Boolean 배열을 사용할 경우 10억개의 크기를 가지므로 에러가 발생하기 때문에 중복 조건을 확인할 수 있는 Set 자료구조를 사용한다. 3. 나눗셈 연산 시 탐색할 숫자가 0일 경우에는 다음 탐색을 수행한다. 코드 i..
[백준][코틀린][10026] 적록색약 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 문제 풀이 1. 주어진 입력을 picture 2차원 Char 배열에 저장한다. 2. BFS를 한 번 수행하여 정상인의 그림 숫자를 구한다. 3. 2번 BFS를 수행 후 Visit 배열을 초기화 하고 picture 배열의 R/G 값을 임의의 X 값으로 업데이트 한다. 4. BFS 를 추가로 수행하여 적록색양의 그림 숫자를 구한다. 코드 import java.io.* import java.ut..
[백준][코틀린][1963] 소수 경로 https://www.acmicpc.net/problem/1963 1963번: 소수 경로 소수를 유난히도 좋아하는 창영이는 게임 아이디 비밀번호를 4자리 ‘소수’로 정해놓았다. 어느 날 창영이는 친한 친구와 대화를 나누었는데: “이제 슬슬 비번 바꿀 때도 됐잖아” “응 지금 www.acmicpc.net 문제 풀이 1. 주어진 입력을 BFS 를 통해서 완전 탐색 한다. 2. 주어진 숫자는 4자리이므로 천의 자리부터 일의 자리까지 탐색 한다. 3. 0 ~ 9 까지의 숫자를 바꿀 수 있으므로 각 경우에 대해서 탐색한다. 4. 이때 천의 자리가 0으로 올 수 없으므로 조건을 추가 한다. 5. 이전에 탐색한 숫자를 확인하기 위한 방문 배열 visit 를 선언한다. 6. 탐색하는 숫자가 현재 숫자와 같은 지 확인 ..
[알고리즘] 에라토스테네스의 체 정의 수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 에라토스테네스 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 에라토스테네스(Ερατοσθένης, 기원전 274년 ~ 기원전 196년)는 고대 그리스의 수학자이자 천문학자이다. 헬레니즘 시대 이집트에서 활약했으며, 문헌학 및 ko.wikipedia.org 알고리즘 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 2는 소수이므로 오른쪽에 2를 쓴다. (빨간색) 자기 자신을 제외한 2의 배수를 모두 지운다. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. 자기 자신을 제외한 3의 배수를 모두 지운다. 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. 자기..