https://www.acmicpc.net/problem/17106 17106번: 빙고 한 줄에 5개의 글자, 총 5줄을 출력한다. 각 줄은 순서대로 빙고판의 각 행을 나타낸다. 색칠된 칸은 "#", 색칠되지 않은 칸은 "."로 따옴표 없이 나타낸다. 예를 들어 A1, C3, C4만 색칠하려면 다음과 www.acmicpc.net 난이도 : 플래티넘 5 태그 : 구현, 브루트포스 설명 위 빙고를 풀면 되는 문제입니다. 코드없이 풀 수도 있을 것 같긴 한데, 저는 풀다가 지쳐서 결국 코드를 돌려 해결했습니다... 25개의 각 칸이 색칠되어있는 경우와 색칠되어있지 않은 경우, 총 2 ^ 25 개의 경우의 수에서 각각의 칸이 모순이 되는지 판단하면 됩니다. 애매한 칸은 B5인데, 해당 칸이 거짓이라 해도 문제의..
https://www.acmicpc.net/problem/17114 17114번: 하이퍼 토마토 첫 줄에는 문제의 설명에서 창고의 크기를 나타내는 자연수 m, n, o, p, q, r, s, t, u, v, w가 주어진다. 단, 1 ≤ mnopqrstuvw ≤ 106 이다. 둘째 줄부터는 창고에 저장된 토마토들의 정보가 주어진다. 창 www.acmicpc.net 난이도 : 골드 1 태그 : 구현, 그래프 이론, 그래프 탐색, 너비 우선 탐색 설명 2차원이였던 7576 토마토와 https://uknowblog.tistory.com/30 [백준 7576번] [Kotlin] 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 ..
https://www.acmicpc.net/problem/5373 5373번: 큐빙 각 테스트 케이스에 대해서 큐브를 모두 돌린 후의 윗 면의 색상을 출력한다. 첫 번째 줄에는 뒷 면과 접하는 칸의 색을 출력하고, 두 번째, 세 번째 줄은 순서대로 출력하면 된다. 흰색은 w, 노란 www.acmicpc.net 난이도 : 플래티넘 5 태그 : 구현, 시뮬레이션 설명 단순히 문제에 나온 대로 큐브를 구현(시뮬레이션)하는 문제입니다. 특정 알고리즘을 몰라도 풀 수 있는 단순 구현 문제입니다만, 구현 과정은 결코 간단하지 않았던 것 같습니다. 저 같은 경우, 큐브를 돌리기 직전 큐브의 상태를 미리 복사한 뒤, 복사된 큐브값을 바탕으로 실제 큐브값을 바꿨습니다. 소스코드 import java.util.* late..
https://www.acmicpc.net/problem/17270 17270번: 연예인은 힘들어 첫 번째 줄에는 약속 장소 후보의 수 V와 약속 장소를 연결하는 총 길의 수 M이 주어진다. (2 ≤ V ≤ 100, 1 ≤ M ≤ 1,000) 그리고 다음 M개의 각 줄에는 a, b, c 가 주어진다. a, b는 길의 시작과 끝이 www.acmicpc.net 난이도 : 골드 3 태그 : 구현, 그래프 이론, 데이크스트라, 플로이드–워셜 설명 다익스트라 혹은 플로이드 워셜을 응용해 풀 수 있는 문제입니다. 계속 틀렸습니다를 받아서 질문게시판을 들여다봤는데, 아니나 다를까 지문이 불친절하다는 의견이 잔뜩 있었습니다... 질문게시판들을 둘러보며 지문을 몇 번이고 다시 읽어봤는데, 해당 조건을 하나씩 적용하면서 ..
https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net 난이도 : 골드 2 태그 : 구현, 그래프 이론, 그래프 탐색, 시뮬레이션, 너비 우선 탐색 설명 삼성 기출문제로도 유명한 상어 시리즈 중 상어 중학교 입니다. 다른 상어 시리즈와 마찬가지로 시뮬레이션 + 그래프(탐색 및 백트래킹) + 배열 뒤집기가 인상적이였던 문제였습니다. 계속 테스트케이스가 다르게 나왔는데, 시뮬레이션 문제 특성 상 한 회차당 맵이 어떻게 바뀌는지 확인해야 하기 때문에 엑..
https://www.acmicpc.net/problem/1331 1331번: 나이트 투어 나이트 투어는 체스판에서 나이트가 모든 칸을 정확히 한 번씩 방문하며, 마지막으로 방문하는 칸에서 시작점으로 돌아올 수 있는 경로이다. 다음 그림은 나이트 투어의 한 예이다. 영식이는 6× www.acmicpc.net 난이도 : 실버 4 태그 : 구현, 시뮬레이션 설명 6 * 6 체스판 위 한 점에서 시작하여 나이트가 이동하며 모든 칸을 한 번씩만 (두 번 이상 같은 곳을 방문하면 실패) 방문하면서, 첫 시작점으로 돌아올 수 있는지 확인하는 문제입니다. 해당 문제 매 좌표 입력을 받을 때 마다 체크해야 할 것이 있습니다. 1. 이미 방문했는가(2번 이상 같은 칸을 반복할 수 없음) -> 2차원 boolean - v..
https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 난이도 : 실버 5 태그 : 구현 설명 도화지 위에 색종이를 붙였을 때, 색종이의 전체 크기를 출력하는 문제입니다. 어떻게 풀까 고민을 좀 해봤는데, 도화지의 가로, 세로의 크기가 100밖에 되지 않는 것을 보고 그냥 100 x 100인 2차원 boolean 배열을 만든 뒤, 색종이로 덮인 부분을 true로 처리하여 최종적으로 true인 부분의 개수만 카운팅하여 출력하면 될 것 같습니다. 소스코드 f..
https://www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net 난이도 : 골드 2 태그 : 구현, 그래프 이론, 브루트포스 알고리즘, 그래프 탐색, 너비 우선 탐색 설명 3차원 큐브를 탈출하는 문제입니다. 한 층씩 좌우로 층을 회전할 수 있고, 한 층씩 마음대로 쌓을 수 있기 때문에, 각 층을 회전하여 만들 수 있는 모든 경우의 수를 탐색하는 완전탐색(DFS) 1번, 각 층을 쌓아 만들 수 있는 모든 경우의 수를 탐색하는 완전탐색(DFS..
https://www.acmicpc.net/problem/11328 11328번: Strfry C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래 www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 문자 설명 두 개의 문자열을 입력받고, 한 문자열을 적절히 재배치하여 다른 문자열을 만들 수 있는지 판단하는 문제입니다. 즉 애너그램인지 판단하는 것이죠. https://namu.wiki/w/%EC%95%A0%EB%84%88%EA%B7%B8%EB%9E%A8 애너그램 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수..
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 문자열 설명 26개의 배열을 선언하고 -1로 초기화한뒤, A ~ Z, 각 문자가 처음으로 나오는 순간이 몇 번째인지 저장합니다. 첫 번째로 나오는 순간이므로, -1인지 확인 후 업데이트 하는게 주의점입니다. 소스코드 #include #include int main() { char str[100]; scanf("%s", str); int result..