목록CodingTest (432)
기록방
👉 문제링크 12933번: 오리 첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다. www.acmicpc.net 🔸 문제 분석 🔸 울음소리 "quack"를 확인해야하는데, 여러 사이클이 존재할 수 있다. 불가능한 조합이라면 -1을 출력해야 한다. 🔸 코드 🔸 import sys input = sys.stdin.readline print = sys.stdout.write string = input().rstrip() strs = [] # 오리 별 울음소리 저장 answer = 0 # 오리의 수 done = 0 # 끝난 울음 소리 수 duck = "quack" # 울음소리 한 사이클 fi..
👉 문제링크 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 🔸 문제 분석 🔸 입력된 한 줄의 문장을 뒤집어 출력하는 문제이다. 기호로 감싸진 부분은 '태그'이며 뒤집지 않는다. 공백을 구분해 한 단어씩 뒤집는다. 🔸 코드 🔸 import sys str = sys.stdin.readline().rstrip() tag = False answer = "" temp = "" for c in str : if c == '': tag = False answer += c elif c == '..
👉 문제링크 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 🔸 문제 분석 🔸 땅 크기(N)와 인구 최소, 최대값(L,R)이 주어지고, 2차원 배열 형태의 인구수가 주어진다. 인구수의 차이가 L, R 값 사이라면, 국경선을 연다. 국경선이 열려서 통행이 가능한 나라들을 한 그룹으로 묶는다. 한 그룹의 평균 인구수를 그룹내 모든 칸에 채운다. (인구를 평준화한다) 이 평준화 작업은 BFS로 구현하면 될 것 같다. 국경선이 한 곳이라도 열렸다면, 인구 이동이 있으므로 하루가 지나야 한다. 🔸 코드 🔸..
👉 문제링크 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 🔸 문제 분석 🔸 문제가 좀 길었지만 어려운 조건은 아니다. 4가지 톱니가 있는데, 그 중 하나를 돌렸을때 다른 톱니 상태가 어떻게 변하는지 구하면 된다. 각 톱니 상태는 vector 를 쓰면 될 것 같고, 옆 톱니에게 영향을 주는 것은 마치 BFS의 원리와 비슷한 것 같아서 queue를 사용했더니 쉽게 풀렸다. 🔸 코드 🔸 #include #include #include #include using namespace std; void turn(v..
👉 문제링크 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 입력받은 숫자가 앞 뒤로 대칭인지 확인하는 문제이다. 🔸 코드 🔸 #include #include using namespace std; int main(void) { string input; while (true) { cin >> input; if (input == "0") break; bool flag = true; int size = input.length(); for (int i = 0; i < size/2; i++) { if (input[i..