컴퓨터 공학 기초
-
백준 1476(날짜 계산)컴퓨터 공학 기초/알고리즘 (브루트포스) 2020. 8. 19. 15:06
https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타�� www.acmicpc.net 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 위와 같은 조건..
-
백준 16197( 두 동전)컴퓨터 공학 기초/알고리즘 (브루트포스) 2020. 8. 18. 02:11
https://www.acmicpc.net/problem/16197 16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, �� www.acmicpc.net 해당 문제는 동전이 2개가 존재하며 아래와 같은 규칙을 이용하며 동전이 하나만 떨어지는 최소한의 경우를 구하는 문제이다. 따라서 BFS를 사용한 완전탐색을 이용하여 동전이 떨어질때의 Cnt 값을 반환하는 형식으로 풀이하면 된다. 요구사항 : 동전은 상하좌우로 이동가능하며 최대 10번 까지 이동할 수 있다 초과시 -1 반환 동전이 하나만 떨어질 경우가 없는 경우 -1 반환 동전의 이동방향이 ..
-
백준 16928 (뱀과 사다리게임)컴퓨터 공학 기초/알고리즘 (브루트포스) 2020. 8. 17. 15:15
https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 해당 문제는 1 ~ 100 까지의 칸을 가진 Map 위에서 주사위 ( 1~ 6 )을 굴려 말의 위치를 옮겨가며 해당 말의 위치가 100에 도착하기 위한 최단경로를 찾는 문제이다. 따라서 BFS를 이용하여 문제를 해결하면 된다. 이때 주의해야 할 점이 BFS를 사용하여 queue에 모든 경로를 저장하게 되면 메모리 초과가 발생하게 된다 따라서 이미 방문..
-
백준 14889 (스타트와 링크)컴퓨터 공학 기초/알고리즘 (브루트포스) 2020. 8. 17. 14:25
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 해당 문제는 총 n 명의 사람을 조합을 이용해 2개의 팀을 만들어 해당 팀의 평균 능력치를 구하여 각 팀 능력치의 절대값 중 최소값을 구하는 문제이다. 풀이 : #include #include #include #include #include #include using namespace std; int n; int used[21]; int map[21][21]; int result = 999999; vector sLis..
-
백준 2529 (부등호)컴퓨터 공학 기초/알고리즘 (브루트포스) 2020. 8. 17. 13:32
https://www.acmicpc.net/problem/2529 2529번: 부등호 여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력� www.acmicpc.net 해당 문제는 0 ~ 9 까지 의 숫자들의 순열(중복 X)을 사용하여 주어진 부등호의 경우가 일치할 때 순열에 사용된 숫자를 비교하여 최대값과 최소값을 비교하는 문제이다. 풀이 : DFS를 사용한 재귀를 이용하여 문제풀이 1. 규칙 찾기 가장 첫번째 숫자를 제외한 나머지 숫자는 항상 부등호 뒤에 위치한다. 따라서 1 중 for 문을 사용하여 가장 첫 번째 숫자를 넣어준 뒤 재귀함수를 수행시키며 ..
-
백준 14226 (이모티콘)컴퓨터 공학 기초/알고리즘 (브루트포스) 2020. 8. 4. 18:49
https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만�� www.acmicpc.net 해당 문제는 영선이가 효빈에에게 이모티콘 S개를 보내려 할 때 조건에 따라 이모티콘의 수를 변경하며 최소 몇 초 만에 S개의 이모티콘을 보낼 수 있는지 구하는 문제이다. 이모티콘의 수를 변경할 수 있는 방법은 다음과 같으며 각 방법을 시행시 1초가 소요된다. 조건 1. 화면에 있는 이모티콘 전부를 클립보드에 복붙 하는경우 (따라서 화면에 이모티콘이 0이라면 수행 X) 2. 화면에 있는 이모티콘 ..
-
백준 13913 (숨바꼭질 4)컴퓨터 공학 기초/알고리즘 (브루트포스) 2020. 8. 3. 22:12
https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 �� www.acmicpc.net 해당 문제는 수빈이가 동생을 찾는데 까지 걸리는 시간과 해당 시간동안 이동한 위치를 출력하는 문제이다. BFS를 사용하여 완전탐색을 시행하며 최단 거리를 출력하면 된다. 이때 주의할 점은 다음과 같다. 1. 수빈이가 이동한 위치를 기록할 Vector 생성 후 해당 벡터에 계속 push 하는 과정을 통해 위치를 저장하고 출력하면 된다. 하지만 수빈이의 위치가 ..
-
백준 17811 (원판 돌리기)컴퓨터 공학 기초/알고리즘 (구현) 2020. 7. 31. 21:23
https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 해당 문제는 지문에 조건에 맞게 구현만 하면 되는 문제이다. 주의사항은 다음과 같다. 1. 인접한 요소를 찾을 때 인접한 Y축 (세로) 의 값을 비교할 경우 -1 or n 과 같아지는 경우 비교를 하지 않게 예외처리 2. 인접한 요소를 찾을 때 인접한 X축 (가로) 의 값을 비교할 경우 기준 X가 0 or m 과 같은 경우라면 X가 0일때는 기준 X축 배열의 가장 끝에 해당하는 요..