11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 풀이 t =int(input()) a= list(input()) s=0 for i in a: s+=int(i) print(s) 입력을 받을 때, list로 입력을 받게 되면 숫자들이 쪼개지며 문자열 형태로 바뀐다. 이를 이용해서 a에 있는 문자열을 정수형으로 바꿔주며 더해주면 된다.
10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 import sys input= sys.stdin.readline t = input() a = list(map(int,input().rstrip().split())) print(min(a),max(a)) 가장 간단하게 생각하면 그냥 min, max 함수를 쓰면 된다. 그런데 이렇게 한다면 정말 기적적으로 연산속도가 느려지는 걸 볼 수 있다. 왜일까? 이는 파이썬이 인터프리터 언어기 때문에 min과 max를 계산할 때 전부 ..
10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 풀이 s = input() for i in range(97,123): print(s.find(chr(i)),end =' ') chr 함수는 숫자 i가 주어졌을 때 아스키 코드에 해당하는 알파벳을 반환한다. find 메소드는 해당 문자열에서 몇 번째에 있는지 인덱스를 반환한다. (없다면 -1을 반환) 주어지는 알파베시 전부 소문자이므로, 아스키 코드는 97부터 123이다. 따라서 위와 같이 find(문자열(아스키 코드 97~123))을 대조해서 출력해주..
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..