전체 글 143

[백준] 10818. 최소, 최대(476ms)

1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net # 10818 최소, 최대 import sys N = int(input()) arr = list(map(int, sys.stdin.readline().rstrip().split())) # 처음부터 다 찾는 방법(476ms) min_num = 10000001 max_num = -2000000 for i in arr: if i > max_num: max_num = i if i < min_num: min_num = i print('{} {}'.forma..

[백준] 1110. 더하기 사이클

1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net # 1110 더하기 사이클 def cycle(N) : A = N // 10 B = N % 10 new_N = ((B % 10) * 10) + ((A + B) % 10) return new_N origin = int(input()) num = origin count = 0 while True: ret = cycle(num) count += 1 if ret == origin: print(count) break else: num = ret 입력값 중 뒤..

[백준] 10952 A+B - 5, # 10951 A+B - 4

반복문 단계 1부터 N까지의 합을 구하는 문제. 물론 반복문 없이 풀 수도 있습니다. www.acmicpc.net # 10952 A+B - 5 while True: N, M = map(int, input().split()) if N + M != 0: print(N + M) else: break # 10951 A+B - 4 while True: try : N, M = map(int, input().split()) print(N+M) except EOFError: break 10951번은 try-except 문을 활용해 EOFError(파일의 끝에 와서 더 이상 입력 값이 없어, 명령문을 실행시킬 수 없는 상태)일 경우 무한 루프 while 문이 종료되도록 설정했다. 물론 EOFError을 안붙이고 그냥 e..

[백준] 10871. X보다 작은 수

10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net # 10871 X보다 작은 수 import sys N, X = map(int, sys.stdin.readline().rstrip().split()) arr = list(map(int, sys.stdin.readline().rstrip().split())) for i in arr: if i < X: print(i, end=' ') 평소에 input().split()으로 받던 걸 sys.stdin.readline().rstrip().split()으로 ..

[백준] 2439. 별 찍기 - 2

2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 정답 # 2439 별 찍기 - 2 N = int(input()) for i in range(1, N+1): if i == N: print(' ' * (N-i) + '*' * i, end='') break print(' ' * (N-i) + '*' * i) 2년 전쯤인가, 이 문제랑 비슷한 문제를 맞닥뜨린 적이 있었는데(아마 가운데 정렬로 별 찍기였던 것 같다.) 그때는 어떻게 풀어야 할지 몰라 당황했던 기억이 있다. 싸피에서 공부를 한 지금 보니 너무나 쉬운 문제라, 스스로 많이 성장했다고 칭찬했다. +..

[백준] 2742 기찍 N, 11021 A+B-7, 2438 별 찍기 - 1

반복문 단계 1부터 N까지의 합을 구하는 문제. 물론 반복문 없이 풀 수도 있습니다. www.acmicpc.net 단계별 풀기 - 반복문 부분의 문제들이다. 정답 # 2742 기찍 N N = int(input()) for i in range(N, 0, -1): if i == 1: print(i, end='') break print(i) # 11021 A+B-7 import sys T = int(input()) for tc in range(1, T+1): n, m = map(int, sys.stdin.readline().rstrip().split()) print('Case #{}: {}'.format(tc, n+m)) # 2438 별 찍기 - 1 N = int(input()) for i in range(1..

[백준] 15552. 빠른 A+B

15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 정답 # 15552 빠른 A+B import sys T = int(input()) for tc in range(1, T+1): a, b = map(int, sys.stdin.readline().rstrip().split()) print(a+b) sys를 사용해 많은 양의 입력을 빠르게 받는 방법이다. 사실 이제껏 sys.stdin = open('input.txt', 'r') 이런 식으로 테스트케이스를 받을 때 사용했는데, 정작 왜 sys.stdin이 빠른지 잘 몰랐다. 그래서 오늘..

[백준] 2739 구구단, 10950 A+B_3, 8393 합

반복문 단계 1부터 N까지의 합을 구하는 문제. 물론 반복문 없이 풀 수도 있습니다. www.acmicpc.net 단계별 풀기는 현재 반복문 문제들 모아푸는 중! # 2739 구구단 N = int(input()) for i in range(1, 10): if i == 9: print('{} * {} = {}'.format(N, i, N * i), end='') else: print('{} * {} = {}'.format(N, i, N*i)) # 10950 A+B-3 T = int(input()) arr = [] for test in range(1, T+1): n, m = map(int, input().split()) arr.append(n+m) for i in range(len(arr)): if i ==..

[백준] 2480. 주사위 세개

2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net # 2480 주사위 세개 a, b, c = map(int, input().split()) max_num = 0 # case 1 세개 같은 것 나오면 10000+(같은눈)*1000원 if a == b and b == c: print(10000 + a*1000 ) # case 2 같은 눈 2개만 나오면 1000 + 같은 눈 * 100 elif a == b or a == c: print(1000 + a*100) elif b == c: print(1000..

[백준] 2525. 오븐 시계

2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 정답 # 2525 오븐 시계 H, M = map(int, input().split()) add_M = int(input()) M += add_M while M >= 60: M = M - 60 H += 1 if H > 23: H = 24 - H print('{} {}'.format(H, M)) 저번에 풀었던 알람 시계와 흡사하게 풀면 되는 문제. 이번엔 조건문 말고 반복문도 함께 사용했다. M에 분이 더해졌을 때 180분, 240분 이렇게 될 수도 있..