본문 바로가기

BOJ/Python

(192)
[BOJ/백준] 32651 - 인간은 무엇인가 (Python) 문제문제링크100000 이하의 2024의 배수인지 판단하라. 코드n=int(input())if n%2024==0 and n
[BOJ/백준] 2991 - 사나운 개 (Python) 문제문제링크두 마리의 개는 각각 a, c분동안 공격적이고 b, d분동안 쉰다.3명의 도착 시간이 주어질 때, 각각 몇 마리의 개에게 공격받는지 구하라. 풀이첫번째 개는 0두번째 개는 0따라서 각각 0세명의 도착 시간을 각각 (a+b), (c+d)로 나눈 나머지가 위 구간 내에 있다면 공격이 있는 것으로 판단한다. 코드def attack(a,b,c,d,i): n1, n2=i%(a+b), i%(c+d) dog=0 if n10: dog+=1 if n20: dog+=1 print(dog)a,b,c,d=map(int, input().split())p,m,n=map(int, input().split())attack(a,b,c,d,p)attack(a,b,c,d,m)..
[BOJ/백준] 2975- Transactions (Python) 문제문제링크통장 잔고는 -200이상이어야 한다.통장에 인출(W) 혹은 입금(D)을 할 때, 통장 잔고를 출력하라. 풀이만약 입력이 '0 W 0'이면 입력이 끝난 것이므로 break한다.인출의 경우 인출 후 금액이 -200 이상이면 잔고를 출력하고 아니면  ‘Not allowed’를 출력한다.상한선은 없으므로 입금은 초기 금액과 입금 금액을 더해 출력한다. 코드while True: start, wd, inout=input().split() start, inout=int(start), int(inout) if start==0 and inout==0 and wd=='W': break else: if wd=='W': if start-ino..
[BOJ/백준] 2765 - 자전거 속도 (Python) 문제문제링크바퀴의 반지름(inch), 회전수, 걸린 시간(s)이 주어졌을 때, 총 이동거리(miles)와 평균 속도(miles/hour)를 계산하라. 풀이우선 반지름을 mile 단위로, 시간을 hour 단위로 바꿔야한다.반지름(miles) = 반지름(inch) * (1ft/12inch) * (1miles/5280ft)시간(h) = 시간(s) * (1h/3600s)이동 거리는 원의 둘레(2πr)에 회전 수를 곱한 것이고, 회전 속도는 이 거리를 시간으로 나눈 것이다.계산한 두 값을 소수점 2번째 자리까지 출력한다. 코드i=0while True: diameter,turn,time=map(float, input().split()) if turn==0: break else: ..
[BOJ/백준] 2547 - 사탕 선생 고창영 (Python) 문제문제링크학생들이 가져온 사탕을 모두 모아 남기지 않고  모든 학생들에게 공평하게 나누어줄 수 있는가? 풀이각 테스트 케이스는 빈 줄로 구분되어 있고 각 테스트 케이스 첫 줄에 학생 수가 입력되므로empty와 n에 각각을 입력받은 후, 사탕의 수를 리스트에 저장한다.사탕 수의 합을 구하고 학생 수로 나눈 나머지가 0이라면 공평히 나누어줄 수 있는 것이다. 코드t=int(input())for _ in range(t): empty=input() n=int(input()) candy=[int(input()) for _ in range(n)] if sum(candy)%n==0: print('YES') else: print('NO')
[BOJ/백준] 1703 - 생장점 (Python) 문제문제링크branchorama  나무의 모든 생장점에서 같은 숫자의 가지로 나뉘며, 그 숫자는 해마다 다르다.그 숫자와 가지치기 할 가지의 수, 나무의 나이가 주어질 때, 총 가지의 수를 구하라. 풀이각 줄에서 맨 첫 번째 값은 나무의 나이(a), 이외에는 index가 짝수인 값은 한 가지에서 나눌 숫자이고 홀수인 값은 가지치기할 숫자이다.맨 처음 시작 가지(l)는 1이고, 짝수 index값은 곱해주고 홀수 index값은 빼준다.이 한 번의 과정이 한 해를 의미한다.a 해가 지난 후, l에 저장된 값은 총 가지의 수이다. 코드while True: branchorama=list(map(int, input().split())) if branchorama==[0]: break e..
[BOJ/백준] 32642 - 당구 좀 치자 제발 (Python) 문제문제링크현재 동우의 분노는 0이고 비가 오면(1) 1씩 증가하고 오지 않으면(0) 1씩 감소한다.각 날의 분노를 구해 총 합을 구하라. 풀이anger을 0으로 설정하고 입력받은 값이 1이면 1을 더하고 아니라면 1을 뺀다.총합(gauge)에 각 날의 anger을 더하고 for문이 끝날 때까지 이 과정을 반복한다. 코드n=int(input())rain=list(map(int, input().split()))anger,gauge=0,0for r in rain: if r==1: anger+=1 else: anger-=1 gauge+=angerprint(gauge)
[BOJ/백준] 15829 - Hashing (Python) 문제문제링크 r은 31,  M은 1234567891일 때, 위의 식으로 해시값을 구하라. 풀이소문자로 이루어진 문자열은 a부터 1, b는 2, ... 이렇게 값이 부여된다.각각 값을 부여하기보다는 a의 아스키값-1을 각 문자의 아스키 코드값에서 빼서 값을 계산했다.모든 문자의 거듭제곱곱한 값의 합을 구하였을 때, M으로 나눈 나머지 값을 출력한다. 코드l=int(input())s=input()temp=31tot=0for i in range(l): c=ord(s[i])-96 tot+=(c*(temp**i))print(tot%1234567891)