www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 문제 접근법 S층에서 G층까지 가는 최소 버튼수를 구해야한다. 최단거리를 구할 때 사용할 수 있는 BFS를 사용해도 되는지 체크해본다. 최대 백만번을 초과하지 않으므로 BFS를 충분히 사용가능하다. 아래는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42..
www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제 접근법 땅의 크기와 이동 횟수가 몇번인지 생각해본다 땅의 크기 최대 50 * 50 = 2500 이동은 최대 2000번까지 단순 순회 가정이 5,000,000 DFS를 사용하여 땅을 순회하며 연합이 가능한지 체크한다. 연합을 한 땅끼리 값을 더 해준뒤 땅 갯수만큼 나누어서 분배한다. 이를 더 이상 연합이 생기지 않을 때 까지 반복한다. 아래는 코드입니다. 1 2 3 4 5 6 7 8 9 10 ..
https://www.acmicpc.net/problem/9019 9019번: DSLR 문제 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 저장된 n을 다음과 같이 변환한다. n의 네 자릿수를 d1, d2, d3, d4라고 하자(즉 n = ((d1 × 10 + d2) × 10 + d3) × 10 + d4라고 하자) D: D 는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경 www.acmicpc.net 문제 접근법 입력 값과 명령어를 저장할 queue를 만든다. 4가지 명령어를 수행할 때 방문을 체크하기 위하여 bool 값 배열을 준비한..
https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 www.acmicpc.net 문제 접근 방법 BFS를 이용하여 풀 수 있는 문제임을 확인한다. 이동 가능한 케이스를 3가지에 대해 모두 진행하여 정답을 찾으면..
https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 문제 접근 방법 입력 받은 문자들을 오름차순으로 정리한다. 원하는 암호의 길이가 될 때까지 공백에서 한문자씩을 더한다. 원하는 길이가 되었을 때 모음과 자음 갯수를 만족하는지 체크한다. 조건이 성립하면 문자를 출력한다. 아래는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34..
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누 www.acmicpc.net 문제 접근 방법 겹쳐지는 도형의 범위 만큼 해당 수를 더하면 되는 문제. 모든 도형의 회전이나 반전을 했을 경우 종류를 생각 -> ..
https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 주어지며, 같은 버튼이 여러 번 주어지는 경우는 없다. www.acmicpc.net 원하는 채널로 이동하기 위한 최소 버튼을 구하는 문제입니다. 최초 채널이 100이라는 점을 잊지 말아야 합니다. 항상 같은 자리수가 최단 거리가 아닐 수 있다는 것도 가정해야합니다. 이동하고 싶은 채널 999 고장난 버튼 수 7개 고장난 버튼 2,3,4,5,6,7,9 이런 경우 888에서 999로 이동하는 것 보다 1000에..