20210614
https://www.acmicpc.net/problem/10869
풀이
a, b = map(int, input().split()) print(a + b) print(a - b) print(a * b) print(a // b) print(a % b)
- 입력값을 split하고 int로 변환
- 예제 입력 7 3 >>> 한 줄로 입력하기!
- a를 b로 나눌 때
/ 를 사용하면 실수형 값이 나오고
// 를 사용하면 정수형 값이 나온다
https://www.acmicpc.net/problem/2588
풀이
a = int(input()) b = int(input()) print(a * int(str(b)[2])) print(a * int(str(b)[1])) print(a * int(str(b)[0])) print(a * b)
- 두 번째 자연수의 자릿수를 뽑아내기 위해 문자형으로 바꾸고 인덱스 값을 이용해 곱셈을 해준 뒤 정수형으로 다시 바꿔 주었다.
- 예제 입력
472
385 >> 두 줄로 입력하기!
https://www.acmicpc.net/problem/2884
풀이
H, M = map(int, input().split()) if M > 44: print(H, M-45) elif M < 45 and H > 0: print(H-1, M+15) else: print(23,M+15)
- M이 44보다 크면 그냥 출력해주면 됨
- M이 45보다 작고 H가 0보다 크면 H에서 1을 빼고
M에서 15를 더해서 출력해주면 됨
ex) H = 2, M = 40 (2시 40분)
출력 H-1 = 2-1 = 1 / M+15 = 40+15 = 55
(1시 55분)- 그렇지 않은 경우(H = 0) 23을 출력하고 M에서 15를 더해서 출력해주면 됨
ex) H = 0, M = 30 (00시 30분)
출력 23 / M+15 = 30+15 = 45
(23시 45분)
https://www.acmicpc.net/problem/4334
풀이
n = int(input()) for _ in range(n): nums = list(map(int, input().split())) avg = sum(nums[1:])/nums[0] cnt = 0 for score in nums[1:]: if score > avg: cnt += 1 rate = cnt/nums[0] * 100 print(f'{rate:.3f}%')
- 인덱스 무시하는 for문 (입력받은 값인 n만큼 반복)
- 다음 입력값들을 nums에 저장
- 평균값 = nums의 첫번째 원소부터 마지막 원소까지 더한 후 nums의 0번째 원소로 나눈다.
- cnt = 0 (평균을 넘는 사람이 몇명인지 세기 위해)
- 반복문 안에서 한번 더 반복
- 만약 점수가 평균값보다 크다면 cnt에 1을 더해줌
- rate는 cnt를 학생의 수로 나눈 값 X 100
- f-string 표기법을 이용해 소수점 셋째 자리까지 표현
https://www.acmicpc.net/problem/1157
풀이
words = input().upper() s = list(set(words)) cnt_list = [] for x in s: cnt = words.count(x) cnt_list.append(cnt) if cnt_list.count(max(cnt_list)) > 1: print('?') else: max_index = cnt_list.index(max(cnt_list)) print(s[max_index])
- 입력받은 값을 대문자로 만들기
- 집합으로 만든 후(중복 제거) 리스트로 만들기
- 개수를 셀 리스트(cnt_list) 생성
- 정렬된 리스트의 원소를 돌면서 원소의 개수를 센다
- cnt_list에 추가(append)
- 만약 cnt_list의 최댓값이 1개가 아니라면 ? 출력
- 아니라면 cnt_list의 최댓값을 가진 인덱스 값을 알아내고 그 값을 집합으로 만든 리스트에 대입한다
>> 가장 많이 사용된 알파벳을 대문자로 출력한다.