![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbr4YyS%2Fbtsmhfo1ER6%2FlhZgtKkfK8dUPLoZRWEv40%2Fimg.png)
https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 난이도 : 실버 2 태그 : 자료구조, 스택, 연결리스트 시도 1 간단히 생각해보면, 스택이나 리스트 하나를 만들어두고 커서의 위치를 담을 cursorIdx 변수를 만들어 특정 위치에서 add 혹은 remove를 하면 쉽게 풀릴 것 같네요 import java.util.StringTokenizer fun main() = with(System.`in`.bufferedReader()) { val wor..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FziOfK%2FbtsmkJXaTni%2FkgObMxgn5VG5GhRySs30Ek%2Fimg.png)
https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 난이도 : 실버 2 태그 : 브루트포스, 백트래킹 설명 배열의 순서를 적절히 섞어 위 식의 최댓값을 찾는 문제였습니다. 처음에는 위 식을 |A[0] - A[1]| + |A[2] - A[3]| 과 같이 두 식의 차이의 절대값 인줄 알고 그리디로 접근하면 되겠지? 싶었는데 |A[0] - A[1]| + |A[1] - A[2]| 였습니다 ㅎㅎ; 😭 흠... 그럼 두 번째 방법으로, 백트래킹으로 모든 경우의 수를 탐색하..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdmiafy%2FbtslSrpeZH8%2FaZL5Ls3pP7YBFhi8CKGffK%2Fimg.png)
https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 난이도 : 실버 1 태그 : 수학, 정수론, 소수 판정, 에라토스테네스의 체 설명 골드바흐 추측은 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 라는 추측입니다. 아직 수학적으로 증명되지 않았기에 추측이라고 불립니다. 4보다 큰 짝수를 두 홀수 소수의 합으로 나타낼 수 있을 경우, 두 소수의 차이가 가장 큰 두 수를 출력, 나타낼 수 없을 경우 "Goldb..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdVzbzX%2FbtslMVE6i9I%2FuKJ7BYh7DMHmuodITtkXi0%2Fimg.png)
https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 난이도 : 실버 1 태그 : 그래프 이론, 그래프 탐색, 너비 우선 탐색 설명 특정 위치로 이동할 수 있는 가장 적은 횟수를 찾는 문제입니다. bfs를 활용할 수 있겠는데요. 단순히 4방향 bfs가 아닌 나이트의 이동에 맞춘 8방향 bfs를 사용하면 될 것 같습니다. 나이트의 이동은 상,하,좌,우 중 2칸 이동하고, 수직방향으로 1칸 혹은 상하좌우 1칸 이동 후 이동방향의 대각선 방향 1칸 이동으로..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIDpPN%2FbtslueX3w9Z%2FK5LLFjt1ZUPCe6fEv9tcN0%2Fimg.jpg)
https://www.acmicpc.net/problem/27331 27331번: 2 桁の整数 (Two-digit Integer) 2 つの数字 A, B が与えられる. 十の位が A であり,一の位が B である 2 桁の正の整数を出力せよ. www.acmicpc.net 난이도 : 브론즈 5 태그 : 수학, 구현, 사칙연산 설명 일본 여행을 왔습니다. 그동안 열심히 달려온 만큼 잠시 재충전 시간을 가지고 있으나, 그렇다고 해서 1일 1코테를 쉴 수는 없으므로 좀 쉬운 문제 중에서도 일본어 문제 하나를 선택했습니다. 해당 문제는 숫자 두 개가 주어졌을 때, 첫 번째는 십의 자리, 두 번째는 일의 자리 숫자이며, 이 두 숫자를 합한 숫자를 출력하는 것이 목표입니다. 첫 번째 숫자에 10을 곱하고 두 번째 숫자를 더하여..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi7RL5%2FbtslbnN5Ht1%2FkvJRhQMBnwxt1nwPbvpy60%2Fimg.png)
https://www.acmicpc.net/problem/5214 5214번: 환승 첫째 줄에 역의 수 N과 한 하이퍼튜브가 서로 연결하는 역의 개수 K, 하이퍼튜브의 개수 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000) 다음 M개 줄에는 하이퍼튜브의 정보가 한 줄에 하나씩 주어 www.acmicpc.net 난이도 : 골드 2 태그 : 그래프 이론, 그래프 탐색, 너비 우선 탐색 설명 몇 개의 역이 튜브로 연결되어 있고, 1번에서 N번까지 가는데 거쳐야 하는 최소 역 개수를 찾는 문제입니다. 시도 1 음... 각 튜브들끼리 연결되있다고 하니까, 단순히 각 튜브들끼리 모든 순서쌍을 그래프를 만들면 풀리지 않을까요? (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000)..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrLP99%2FbtskUMgKfwz%2F1sIc3jspIGCzNSuKyLoRUk%2Fimg.png)
https://www.acmicpc.net/problem/1240 1240번: 노드사이의 거리 첫째 줄에 노드의 개수 $N$과 거리를 알고 싶은 노드 쌍의 개수 $M$이 입력되고 다음 $N-1$개의 줄에 트리 상에 연결된 두 점과 거리를 입력받는다. 그 다음 줄에는 거리를 알고 싶은 $M$개의 노드 쌍 www.acmicpc.net 난이도 : 골드 5 태그 : 그래프 이론, 그래프 탐색, 트리, 너비 우선 탐색, 깊이 우선 탐색 설명 가중치가 있는 그래프(트리)에서, 두 노드간 거리를 구하는 문제입니다. DFS/BFS를 사용해 그래프(트리)를 탐색하여 풀 수 있을 것 같은데요. 저는 BFS를 사용해 풀이하였습니다. 소스코드 데이터용 클래스 Node Node는 to (목표 노드), cost(목표 노드로 가는..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoVzo2%2FbtskRv7kSsL%2FSSCJe7aWZvAFIrWegu5RNk%2Fimg.png)
https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 난이도 : 브론즈 1 태그 : 수학, 사칙연산 설명 예전에 푼 문제였던 것 같은데, 오늘 확인해보니 갑자기 틀렸습니다로 뜨길래 뭔가 했더니, 테스트 케이스가 추가되어 재채점 되었더군요. 코틀린 혹은 파이썬으로 해당 문제를 풀 경우 애로사항 중 하나가 바로 반올림하는 부분일 것 같습니다. 이전에 포스팅했던 내용인 오사오입 방식 때문인데요. https://uknowblog.tistory.com/338 코틀린의 반올림 방식 : 오사오입 kotlin.math.round()... 뭔..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkWcpm%2FbtskRaIzAbC%2F3s9PKakfFSkEh3Ndf6p9Yk%2Fimg.png)
https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 난이도 : 골드 4 태그 : 구현, 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 설명 얼음을 녹이면서 덩어리가 두개가 되는 시점을 찾는 문제입니다. 얼음을 녹이는 구현 부분에 약간의 시뮬레이션 요소가 들어갔다고 볼 수 있을 것 같네요. 얼음이 몇 덩어리인지 확인하는 부분은 DFS / BFS 를 사용할 수 있을 것 같은데, 저는 DFS를 사용해 풀이하였습니다. 접근 방법 1...
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVCGBL%2Fbtskfs5d4OD%2FKporPLGQUEFnVyH7fgTNSK%2Fimg.png)
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 난이도 : 브론즈 1 태그 : 정렬, 브루트포스 설명 9명의 난쟁이가 주어졌을 때, 합이 100이 되는 7명의 난쟁이를 찾는 문제입니다. 9명의 난쟁이 키의 합을 구한 뒤, 9명 중 2명을 선택해 난쟁이 키 합에서 뺀 뒤, 100이 되는 케이스를 찾으면 될 것 같습니다. 소스코드 fun main() { val height = Array(9) { 0 } repeat(9) { height[it] = readL..