백준
-
백준(BOJ) 16935번 배열 돌리기 3알고리즘 풀이/백준(Boj) 2019. 12. 1. 02:45
문제 : https://www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → 7 4 6 2 3 1 7 4 6 2 3 1 → 1 8 3 4 2 9 9 2 3 6 1 5 → 7 2 6 9 8 2 4 2 9 3 1 8 → 1 6 2 9 8 4 2번 연 www.acmicpc.net 풀이 : 각각의 조건을 맞춰 1~6까지 여분의 배열 temp를 생성해 변형시켜주자. 3,4번째 에서는 가로와 세로가 달라지기 때문에 swap()..
-
백준(BOJ) 16987번 계란으로 계란치기알고리즘 풀이/백준(Boj) 2019. 11. 30. 02:14
문제 : https://www.acmicpc.net/problem/16987 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱걸이를 5회 하는 기적의 운동 루틴을 통해 뇌와 근육을 동시에 단련한다. 근육을 단련할 때 식단이 정말로 중요하다는 것을 아는 인범이는 탄수화물이 많은 밥이나 빵 따위의 아침 식사를 대신해 단백질이 많은 계란찜을 해먹는다. 계란찜을 먹기 위해서는 계란을 깨야 하 www.acmicpc.net 풀이 : 제일 왼쪽 기준 계란을 시작으로 n-1개의 계란들 중 한 계란을 골라서 깨주어야 한다. 깰수있는 계란들 중..
-
백준(BOJ) 16939번 2x2x2 큐브알고리즘 풀이/백준(Boj) 2019. 11. 30. 01:56
문제 : https://www.acmicpc.net/problem/16939 16939번: 2×2×2 큐브 첫째 줄에 2×2×2 루빅스 큐브 각 면의 각 칸 색상이 주어진다. 색상은 1부터 6까지의 자연수로 나타내며, 각 자연수는 총 4번 등장한다. i번째 수가 의미하는 칸은 아래와 같다. www.acmicpc.net 풀이 : 큐브가 돌아갈 수 있는 방향 12가지를 모두 시도해주자. 돌리는 경우의 수 6가지에 앞뒤로 2가지씩 있으니 총 12가지이다. copy 된 배열에 한 번씩 각각의 경우를 시도해준다. 이때 반대방향에 경우는 원래방향을 3번 한 것과 똑같으므로 3번 불러오는 것으로 구현해준다. 모든 시도를 끝내도 답을 찾지 못했다면 0을 출력한다. 코드 ( C++ )
-
백준(BOJ) 16235번 나무 재테크알고리즘 풀이/백준(Boj) 2019. 11. 26. 20:11
문제 : https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 떨어진 칸의 개수, c는 가장 왼쪽으로부터 떨어진 칸의 개수이다. r과 c는 1부터 시작한다. 상도는 전자통신공학과 출신답게 땅의 양분을 조사하는 로봇 S2D2를 만들었다. S2D2는 1×1 크기의 칸에 들어있는 양분을 조사해 상도에게 전송하고, 모든 www.acmicpc.net 풀이 : 문제를 정확히 이해하고 나와있는 대로만 구현해주면 되는 문제였다. 코드 ( C++ )
-
백준(BOJ) 16985번 - Maaaaaaaaaze알고리즘 풀이/백준(Boj) 2019. 11. 25. 01:51
문제 : https://www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 의미한다. www.acmicpc.net 풀이 : 크기가 y =5 x = 5 z = 1인 블럭이 5개 있다. 이 블럭들의 순서는 next_permutation 함수를 통해서 01234 부터 ~ 43210 까지의 순서들로 각각 처리해주어야 한다. ( 5! 으로 120가지 경우의 수 ) 순서가 정해진 블럭은 5x5x5 정육면체이다. 이 정육면체는 블럭5개가 합쳐있는 것이고 각각의 블럭은 회전해야 한다..
-
백준(BOJ) 16234번 인구 이동알고리즘 풀이/백준(Boj) 2019. 11. 22. 16:03
문제 : https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 www.acmicpc.net 풀이 : 연합이 될 수있는 칸들을 BFS를 통해서 탐색한다. 연합이 자기 자신을 제외하고 하나라도 있다면 ans를 +1 해주..
-
백준(BOJ) 14890번 경사로알고리즘 풀이/백준(Boj) 2019. 11. 16. 04:25
문제 : https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 : 단순히 문제에 주어진 대로 따라하는 시뮬레이션 문제였다. 행과 열을 한줄씩 담아서 경사로를 확인하는 함수에 넣어서 처리하자. 조건들을 주의하면서 푼다면 무리없이 풀 수 있었다. 자세한 것은 주석을 확인 코드 ( C++ )
-
백준(BOJ) 17135번 캐슬 디펜스알고리즘 풀이/백준(Boj) 2019. 11. 13. 23:11
문제 : https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 풀이 : 1. 맨 마지막 칸은 m개의 자리 중 3개의 궁수를 골라야 한다. 따라서 picked 배열을 이용해서 m개의 수중 3개를 뽑아서 궁수 표시를 해주자. 2. 궁수들은 쏠때 한 적을 여러 명이 공격할 수 있으므로 각각 공격이 아닌 한 번에 조준해서 발사하도록 하자. 이때 중복된 적은 1번만 세준다. 3. 조준할 때는 거리가 같다면 가장 왼쪽에 있는 적을 골라야 한다. 따라서 compare 함수..