10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 풀이 간단하게 생각해보면 넓이 W는 의미가 없다. 왜냐하면 엘레베이터에서 가까운 순으로 번호가 채워지고, 결국엔 H부터 앞으로 채워지는 형태이기 때문이다. 따라서 손님이 채워지는 구조는 H만큼을 반복하는 패턴이 될 것이다. 따라서 몫과 나머지 문제라고 할 수 있다. 그렇다면 n을 h로 나눈 뒤, 몫으로 호수를 정하고(n번째 손님이 오면, 최대 층까지 이미 몇번이나 채워졌느냐) 나머지(몇 층까지 채워졌느냐)로 층수를 구하면 된다. 이때 나머지는 100을..
8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 풀이 t = int(input()) # 테스트 케이스의 개수 k = [input() for i in range(t)] # 각 테스트 케이스를 리스트로 만들어준다. for i in range(t): if k[i][0]=='O': #각 테스트 케이스의 첫번째가 O인지 판별 num=1 #O면 점수 1 count=1 else: num=0 #X면 점수 0 count=1 for j in range(len(k[i])-1): #각 테스트 케이스의 길이까지 ..
3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 풀이 n = [int(input())%42 for i in range(10)] print(len(list(set(n)))) 수를 10개 입력받는다고 못 박아 놓았으므로, range 10은 자명하게 쓸 수 있다. 따라서 리스트 컴프리헨션을 통해 각각의 input()을 정수형으로 받아 출력해주면 된다. 이때, 서로 다른 값으로 만들어야 하므로 set으로 중복을 없애 주고 리스트로 만들어 세어주면 된다. 만약에 극한으로 코드를 줄이면 다음과 같이 쓸 수 있다. print(len(list(set([int(input())%42 for _ i..
2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 풀이 소프티어에서 8단 변속기 문제와 완벽히 일치한다. 한 번 읽고 온다면 도움이 될 것이다. https://softeer.ai/practice/6283 이 문제에서 요구하는 개념은 간단하다. 1. 8부터 1까지 반대로 나열할 수 있느냐? 2. 만약 나열이 가능하다면, 그 나열된 리스트들이 순서대로 되어 있는지 확인할 수 있느냐? 그렇기에 설명을 위해 풀어 쓴 코드는 다음과 같다. a = list(map(int,input..
2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 풀이 45분 일찍 알람을 설정하려면, 시간의 개념을 잘 알아야 한다. 하루는 24시간이지만 표기되는 시간은 0부터 23시까지고, 마찬가지로 표기되는 분도 59분까지이다. 따라서 출력을 해주려면, 시간은 24이상 일때 0으로 초기화를 해주어야 하고, 분은 60이상일 때 0으로 초기화를 해주어야 한다. 정확히는 만약에 분이 45분이 넘어간다면 시간은 그대로지만, 45분이 넘어가지 않았다면 시간은 -1을 해줘야 한다는 것. 그리고 분도 15분을 더해줘야 한다. 왜냐면 주어지는..
2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1..