알고리즘 풀이
-
백준(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 해주..
-
프로그래머스 - 전화번호 목록알고리즘 풀이/프로그래머스 2019. 11. 21. 19:31
문제 : https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 | 프로그래머스 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 r programmers.co.kr 풀이 : 하나의 전화번호 목록을 기준으로 잡고 완전 탐색을 ..
-
백준(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++ )