백준 11104
0으로 시작할 수 있는 2진수를 받아 10진수로 출력하는 문제였다. 예전 16진수 문제를 통해 int()
함수에 입력값의 진수를 정해줄 수 있다는 것을 몰랐으면 하나하나 계산해야 했을 수도 있는 문제였다.
for _ in range(int(input())):
print(int(input(), 2))
백준 11319
공백이 포함된 영문 문자열을 받아 자음과 모음 개수를 출력하는 문제였다.
lower()
를 이용해 전부 소문자로 바꿔주면 vowels 리스트에 대문자를 넣을 필요가 없다는 것을 알았다.vowels = ['A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u']
for _ in range(int(input())):
chars = list(map(str, input().replace(' ', '')))
vowel_count = 0
for c in chars:
if c in vowels: vowel_count+=1
print(len(chars)-vowel_count, vowel_count)
백준 11367
정수로 된 점수값을 받아 등급 학점으로 바꾸는 단순한 조건문 문제였다. 플러스 학점을 주는 부분을 어떻게 줄일 수 없을까 생각하다가 10으로 나눈 나머지를 이용하기로 했다. 점수가 60 이상이면서 10으로 나눈 나머지가 7 이상인
경우 기존 학점에 +
를 더해서 출력하도록 했는데, 계속 틀려서 시간이 좀 소모되었다.
for _ in range(int(input())):
name, score = input().split()
score = int(score)
grade = ""
if score >=90: grade = 'A'
elif score >= 80: grade = 'B'
elif score >= 70: grade = 'C'
elif score >= 60: grade = 'D'
else: grade = 'F'
if score >= 60 and score%10 > 6:
grade += '+'
print(name, grade)
다른 분의 코드를 참고해보니 100점일 때를 고려하지 못해서 오답이라는 것을 알게 되었다. (100점일 경우 A+가 나와야 하지만 10으로 나눈 나머지가 0이라 위 조건에 해당하지 않음)
...
if score >= 60 and score%10 > 6 or score==100:
grade += '+'
print(name, grade)