https://www.acmicpc.net/problem/1233
1233번 주사위.
문제
지민이는 주사위 던지기 게임을 좋아하여 어느 날 옆에 있는 동호를 설득하여 주사위 던지기 게임을 하자고 하였다. 총 3개의 주사위가 있다. 그리고 이 주사위는 각각 S1(2 ≤ S1 ≤ 20), S2(2 ≤ S2 ≤ 20), S3(2 ≤ S3 ≤ 40)개의 면이 있다. (실제로는 주사위가 6개의 면이 있는 것이 정상이지만 특별한 주사위라 생각하자.)
문제는 세 개의 주사위를 동시에 던졌을 때 가장 높은 빈도로 나오는 세 주사위의 합을 구하는 것이다.
입력
입력 파일의 첫째 줄에 정수 S1, S2, S3가 주어진다.
출력
출력 파일의 첫째 줄에 가장 높은 빈도로 나오는 세 주사위 합을 구하는 것이다. 단 답이 여러개라면 가장 합이 작은 것을 출력한다.
예제 입력
3 2 3
예제 출력
5
파이썬 소스.
dice = map(int,raw_input().split())
s_list = []
for i in xrange(1,dice[0]+1):
for j in xrange(1,dice[1]+1):
for k in xrange(1,dice[2]+1):
s_list.append(i+j+k)
s_dict = {}
for num in s_list:
if num in s_dict:
s_dict[num] += 1
else:
s_dict[num] = 1
print sorted(s_dict.iteritems(),key = lambda x:x[1],reverse = True)[0][0]
https://www.acmicpc.net/problem/1247
1247번 부호
문제
N개의 정수가 주어지면, 이 정수들의 합 S의 부호를 구하는 프로그램을 작성하시오.
입력
총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1≤N≤100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절대값은 9223372036854775807보다 작거나 같다.
출력
총 3개의 줄에 걸쳐 각 테스트 셋에 대해 N개의 정수들의 합 S의 부호를 출력한다. S=0이면 "0"을, S>0이면 "+"를, S<0이면 "-"를 출력하면 된다.
예제 입력
3
0
0
0
10
1
2
4
8
16
32
64
128
256
-512
6
9223372036854775807
9223372036854775806
9223372036854775805
-9223372036854775807
-9223372036854775806
-9223372036854775804
예제 출력
0
-
+
answer = [] for i in range(3): s = sum([int(raw_input()) for j in range(int(raw_input()))]) answer.append('0' if s==0 else '-' if s<0 else '+' ) print '\n'.join(answer)
'algorithm > problem solving' 카테고리의 다른 글
acmicpc.net 1357, 1252, 1212, 1316, 1302, 1356 (0) | 2016.07.15 |
---|---|
acmicpc.net 1297번 TV크기, 1251번 단어 나누기, 1252번(실패....) (0) | 2016.07.12 |
acmicpc.net 1292번 쉽게 푸는 문제, 1269번 대칭 차집합 (0) | 2016.07.10 |
acmicpc.net 1159번 농구 경기(python, c++) (0) | 2016.07.09 |
acmicpc.net 1120 문자열(c++) (0) | 2016.07.01 |