본문 바로가기

Codeforces/Python

(21)
[Codeforces] 791A - Bear and Big Brother (Python) 문제문제링크리막은 매년 몸무게는 세 배가 되고, 보브는 매년 몸무게가 두 배가 된다.리막이 보브보다 무거워지기까지 몇 년이 걸리는가? 풀이a(리암의 무게)가 b(보브의 무게)보다 작거나 같을 때while문을 사용해 a에는 3을, b에는 2를 곱하고 year에 1을 더해준다.처음 a>b인 순간 while문은 끝나고 이때의 year을 출력하면 된다. 코드a, b=map(int, input().split())year=0while a
[Codeforces] 281A - Word Capitalization (Python) 문제문제링크입력받은 문자열의 첫글자가 대문자가 되도록 출력하라. 풀이대문자로 바꾸기 위해 upper()를 사용하면 된다.인덱스를 활용해 첫번째 요소 s[0]만 upper로 대문자화하고 나머지 s[1:]는 그대로 print한다. 코드s=input()print(s[0].upper()+s[1:])
[Codeforces] 236A - Boy or Girl (Python) 문제문제링크사용자 이름에 포함된 서로 다른 문자의 개수가 홀수이면 남자, 짝수면 여자이다.여자면 "CHAT WITH HER!"를, 남자면 "IGNORE HIM!"을 출력하라. 풀이input()으로 받은 문자열에서 서로 다른 문자만 추출하기 위해 set()을 사용했다.이제 set의 길이를 len으로 구하고 len의 값이 2로 나누어 떨어지면 "CHAT WITH HER!", 아니면 "IGNORE HIM!"을 print한다. 코드name=len(set(input()))print("CHAT WITH HER!" if name%2==0 else "IGNORE HIM!")
[Codeforces] 339A - Helpful Maths (Python) 문제문제링크식의 숫자들이 오름차순으로 써있어야 덧셈을 진행할 수 있다.주어진 식을 계산가능한 형태로 바꾸어라. 풀이문제에서는 식에 1, 2, 3, +만 포함된다.따라서 + 기준으로 식을 나눈다고 할 때 int형이 아니라 string형으로 숫자를 다뤄도 정렬에는 문제가 없다.string으로 입력을 받아 숫자들 사이 '+'로 나눠 리스트에 저장한다.이 리스트를 정렬하고 print할 때 각 요소 사이에 sep='+'을 사용해 앞에서 제거했던 연산자를 추가해주면 된다. 코드s=list(input().split('+'))s.sort()print(*s, sep='+')
[Codeforces] 112A - Petya and Strings (Python) 문제 문제링크두 문자열을 사전순으로 비교해 첫 번째 문자열이 작으면 -1, 같으면 0, 두번째 문자열이 작으면 1을 출력하라.이때 대문자와 소문자는 구분하지 않는다. 풀이대소문자는 구분하지 않아야 하므로 입력 문자열을 모두 lower()로 소문자로 바꾼다.문자열의 사전순 비교는 를 사용하면 된다. 코드first=input().lower()second=input().lower()if first
[Codeforces] 263A - Beautiful Matrix (Python) 문제문제링크5 × 5 matrix에 24개의 0과 1 하나가 채워져있다.이 1이 정가운데로 이동하기 위해 바로 옆과 행을 바꾸거나 열을 바꿀 수 있을 때, 이동을 위한 최소 움직임 수를 구하라. 풀이2차원 리스트 형태로 입력받고 1이 위치한 곳의 인덱스를 알아낸다.정가운데의 위치는 [2][2]이므로 움직임 수는 현재 1의 위치와 정가운데가 얼마나 떨어져있냐로 구할 수 있다.행 차이와 열 차이의 절댓값을 더해서 출력하면 된다. 코드mx=[list(input().split()) for _ in range(5)]for i in range(5): for j in range(5): if mx[i][j]=='1': print(abs(2-i)+abs(2-j))
[Codeforces] 50A - Domino piling (Python) 문제문제링크M × N의 사각형을 2 × 1의 도미노로 채울 것이다.도미노를 돌려도 되고 모두 사각형 안에 위치해야 하며 겹치면 안된다고 할 때 최대 도미노 수를 구하라. 풀이모두 사각형 안에 위치해야 한다하면 면적이 짝수면 상관없지만 홀수일 경우 1의 공간이 남는다.따라서 사각형 면적을 2로 나눈 몫을 구하면 된다. 코드m,n=map(int, input().split())print((m*n)//2)
[Codeforces] 158A - Next Round (Python) 문제문제링크n명의 점수가 주어질 때 k위 선수의 점수와 같거나 커야 다음 라운드에 진출한다.총 몇 명이 다음 라운드에 진출하는가? 풀이선수들의 점수를 내림차순으로 정렬시킨다.파이썬의 인덱스는 0부터이므로 인덱스를 k-1로 하여 k번째 순위 점수를 구한다.점수가 0이면 다음라운드에 진출할 수 없다. 따라서 0이 아니면서 k순위의 점수보다 같거나 크면 리스트에 저장한다. 이 리스트의 길이를 출력하면 된다.for+if문에서 i!=0를 사용하는 이유는 k순위 점수가 0일 때 그 뒤의 순위들이 0일 때에도 lower 리스트에 저장되므로 같이 처리해줬다. 코드n,k=map(int, input().split())a_i=list(map(int, input().split()))a_i.sort(reverse=True)kt..