
https://www.acmicpc.net/problem/2704 2704번: 이진법 시계 각 테스트 케이스마다, 3열 방식으로 읽은 이진법 시계의 시각과 3행 방식으로 읽은 이진법 시계의 시각을 공백으로 구분하여 출력한다. 각각 18개의 비트를 가져야 한다. www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현 설명 시, 분, 초를 각각 이진법으로 나타내고 가로/세로 기준으로 출력하는 문제입니다. C언어에 2진수 변환 내장 함수가 있을까 하며 찾아보다가, 그냥 포기하고 직접 구현해서 풀었습니다. 소스코드 #include #include void get_bin(int arr[], int n) { int i = 0; while (n > 0) { arr[i] = n % 2; n /= 2; i++;..

https://www.acmicpc.net/problem/5566 5566번: 주사위 게임 상근이는 혼자 보드 게임을 하고 있다. 이 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1칸, 도착점은 N칸이다. 각 칸에는 지시 사항이 적혀있다. 지시 사항은 말을 얼만큼 이동해야 하 www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 시뮬레이션 설명 주사위를 던지고, 그 칸의 개수만큼 이동하는 문제입니다. 저는 새로 칸을 이동할때마다 그 칸의 개수만큼 또 이동하여 0이 나올때까지 계속 이동하는 건줄 알았는데, 그냥 한 번만 이동하는 것 이였습니다. 소스코드 n, m = map(int, input().split(" ")) map = [] for i in range(0, n): map.app..

https://www.acmicpc.net/problem/5211 5211번: 가단조와 다장조 첫째 줄에 음악이 주어진다. 음악은 {"A", "B", "C", "D", "E", "F", "G", "|"}로 이루어져 있으며, 길이는 5보다 크거나 같고, 100을 넘지 않는다. |가 연속해서 등장하거나, 문자열의 양쪽 끝에 나오는 경우 www.acmicpc.net 난이도 : 브론즈1 태그 : 구현, 문자열 설명 음악을 배경으로 한 코딩테스트 문제입니다. "|" 문자를 기준으로 문자열을 분리하고, 분리된 각 문자열의 맨 앞글자를 이용해 가장조와 다장조를 각각 카운팅하면 됩니다. 만약 가단조와 다장조 개수가 같을 경우, 문자열의 맨 끝 문자를 비교하여 판단합니다. 소스코드 line = input().strip(..

https://www.acmicpc.net/problem/5426 5426번: 비밀 편지 선영이는 남자친구를 위해 연애 편지를 썼다. 선영이는 편지가 남들에게 읽히는 것을 막기 위해서 편지를 암호화하려고 한다. 먼저, 편지의 내용을 정사각형에 작성한다. 그 다음, 시계방향으로 www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 문자열, 수학 설명 문자열을 90도 돌려 출력하는 문제입니다. 배열에 넣고 for문으로 index 순서를 바꿔 출력하는 방법도 있겠지만, 배열을 사용하지 않고 그냥 풀이해보도록 하겠습니다. RosesAreRedVioletsAreBlue eedARBtVrolsiesuAoReerles 문자열의 길이는 25입니다. 5 x 5로 생각할 수 있겠네요. 암호 문자열의 5번째 문자..

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 난이도 : 골드 2 태그 : 구현, 브루트포스, 백트래킹, 시뮬레이션 설명 2048의 게임을 바탕으로 한 문제입니다. 예전에 꽤 재밌게 했던 게임이고, 자바 스윙을 배울때 GUI로 직접 구현했던 게임이였는데, 이렇게 보니 반갑네요. 2048 게임을 잘 모르시는 분이라면 꼭 아래 링크에서 한 번씩 해보시기 바랍니다. https://play2048.co/ 2048 Join..

https://www.acmicpc.net/problem/2535 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 정렬 설명 점수 순으로 정렬하고, 국가당 최대 두개의 메달만 받을 수 있습니다. 소스코드 import java.util.StringTokenizer fun main() { val br = System.`in`.bufferedReader() val n = br.readLine().toInt() val arr = Array(n) { intAr..

https://www.acmicpc.net/problem/4998 4998번: 저금 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트는 한 줄로 이루어져 있고, N, B, M이 주어진다. M은 항상 N보다 크다. N과 M은 항상 백만보다 작거나 같은 수이고, 음수 또는 0이 아니다 www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 수학, 시뮬레이션 설명 입력에 테스트 케이스가 몇개인지 주어지지 않습니다. 따라서, 무한루프를 돌리면서, 입력이 더 이상 주어지지 않으면 마지막에 EOFError를 일으킬 것이기에, 이를 Try - except 문으로 잡아 반복문을 탈출하면 됩니다. 이자를 구하는 방식은 단순하게 현재 금액 * 이자 / 100 을 이용해 구할 수 있습니다. 소스코드 w..

https://www.acmicpc.net/problem/2810 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 난이도 : 브론즈 1 태그 : 구현, 문자열, 그리디 알고리즘 설명 커플석 가운데에는 컵홀더가 없습니다. 따라서 커플석의 개수에 따라 컵홀더를 쓸 수 있는 사람의 수가 줄어듭니다. *S*S*S*S*S*S*S*S*S*S* 10개의 일반석이 있습니다. 이 경우, 10명 모두가 컵홀더를 사용할 수 있습니다. *S*S*S*S*LL*S*S*S*S* 8개의 일반석과 2개의 커플석이 있습니다. 이 경우에도 10명 모두 컵홀더를 사용할 수 있습니다. *S*S*S*S*LL*S*LL*S* 6개의 일반석과 4개의 ..

https://www.acmicpc.net/problem/25205 25205번: 경로당펑크 2077 시은이는 종합설계 프로젝트로 오픈월드 액션 고스톱 게임 경로당펑크 2077을 개발하고 있다. 대사를 추가하던 중, 사용자 이름에 따라 '을' 또는 '를' 중 하나를 출력해야 함을 깨달았다. 예를 들 www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 문자열 설명 한글의 경우, 이름의 마지막 글자의 종성이 있다면, 즉 받침이 있다면 '를', 없다면 '을' 을 사용합니다. 닉네임이 영타로 들어올 때, 마지막 글자만 체크해서 자음이면 1, 모음이면 0을 출력하면 됩니다. 소스코드 #include #include int main() { int n; char name[30]; scanf("%d", ..

https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 난이도 : 골드 3 태그 : 구현, 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색, 시뮬레이션 설명 외부 공기와 접촉하는 칸이 두 곳 이상이면 치즈가 녹습니다. 이때, 모든 치즈가 녹으려면 얼마만큼의 시간이 필요한지 구하는 문제입니다. DFS, BFS 중 어느것을 사용해도 무방하나, 저는 DFS를 사용하여 풀이하였기에, 본 포스팅에선 DFS를 사용한 접근법과 풀이를 서..