TIL-13

정진우·2021년 6월 14일
0

TIL

목록 보기
13/54
post-thumbnail

20210614

백준 10869번 사칙연산

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로 나눌 때
    / 를 사용하면 실수형 값이 나오고
    // 를 사용하면 정수형 값이 나온다

백준 2588번 곱셈

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 >> 두 줄로 입력하기!

백준 2884번 알람 시계

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분)

백준 4334번 평균은 넘겠지

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 표기법을 이용해 소수점 셋째 자리까지 표현

백준 1157번 단어 공부

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의 최댓값을 가진 인덱스 값을 알아내고 그 값을 집합으로 만든 리스트에 대입한다
    >> 가장 많이 사용된 알파벳을 대문자로 출력한다.
profile
프론트엔드 개발자를 꿈꾸는

0개의 댓글