본문 바로가기

BOJ/Python

(192)
[BOJ/백준] 32841 - 왜 맘대로 예약하냐고 (Python) 문제문제링크x교시에 교실을 예약한다. 조원들이 각각 참석 가능한 교시에 대한 정보가 주어질 때, x교시에 모든 조원이 참석할 수 있는가? 풀이조원들이 예약 가능한 교시를 리스트로 각각 받는다.만약 이 리스트들에 x가 없는 경우가 하나라도 있으면 모두 참석할 수 없는 것이다. 코드t,x=map(int, input().split())n=int(input())yn='YES'for _ in range(n): ki=int(input()) ai=list(map(int, input().split())) if x not in ai: yn='NO' breakprint(yn)
[BOJ/백준] 33169 - 所持金 (Money On Me) (Python) 문제문제링크첫 줄에 1000엔의 개수, 두번째 줄에 10000엔의 개수가 주어진다.총 금액을 구하라. 코드a=int(input())b=int(input())print(1000*a+10000*b)
[BOJ/백준] 33165 - 徒競走 (Footrace) (Python) 문제문제링크t초 동안 초속 v m의 속도로 달렸을 때, 총 몇 m를 달렸는가. 풀이거리 = 시간 * 속도 코드t=int(input())v=int(input())print(t*v)
[BOJ/백준] 1874 - 스택 수열 (Python) 문제문제링크1부터 n까지 순서대로 스택에 넣었다가 빼서 수열을 만들 것이다.임의의 수열이 주어졌을 때 어떤 순서로 push(+)와 pop(-) 연산을 수행해야 하는 구하라. 풀이수열의 i번째 수보다 current가 작을 때까지 stack에 수를 넣고 push_pop에 push했다는 의미로 '+'를 넣는다.stack이 비지 않았고 수열의 i번째 수가 stack의 마지막 요소일 때 그 요소를 삭제하고 push_pop에 '-'를 넣는다.이 경우 삭제한 요소는 새로 만들 임의의 수열의 요소로 들어가지만 연산 순서를 구하는 문제이기 때문에 새 수열은 만들지 않았다.이외의 경우, 즉 수열을 만들 수 없으면 'NO'를 출력하고 종료한다.수열이 완전히 만들어졌을 경우 for-else문의 else문이 실행된다. push..
[BOJ/백준] 10773 - 제로 (Python) 문제문제링크장부에 기록할 잘못된 수를 부를 때마다 0을 외쳐 가장 최근에 쓴 수를 지울 것이다.모든 수를 적은 후 장부의 적힌 수의 합을 구하라. 풀이input이 0일 때는 장부에 수가 있다고 보장한다 했으니 0일 경우 stack에서 마지막 요소를 제거한다.나머지 경우에는 수를 삽입하고 마지막 총합을 구한다. 코드import sysinput=sys.stdin.readlinek=int(input())stack=[]for _ in range(k): i=int(input()) if i==0: stack.pop() else: stack.append(i)print(sum(stack))
[BOJ/백준] 3986 - 좋은 단어 (Python) 문제문제링크단어 위로 아치형 곡선을 그어 A는 A끼리, B는 B끼리 쌍을 지을 것이다.선끼리 교차하지 않으면서 각 글자를 다른 위치에 있는 글자와 짝지을 수 있다면 '좋은 단어'이다.'좋은 단어' 개수를 구하라. 풀이스택에 요소가 있고 스택의 마지막 요소와 현재 단어의 요소가 같으면 스택에서 삭제한다.이외에는 스택에 단어의 요소를 집어넣는다.만약 모든 과정이 끝나고 스택에 아무것도 없으면 단어의 요소가 각각 짝지어져서 빠져나온 것이다.이 경우 선끼리 교차하지 않는다.빈 스택일 경우일 때만 세면 좋은 단어의 개수와 같다. 코드import sysinput=sys.stdin.readlinen=int(input())count=0for _ in range(n): ab=list(input().strip()) ..
[BOJ/백준] 33170 - ブラックジャック (Blackjack) (Python) 문제문제링크세 수의 합이 21 이하라면 1, 그렇지 않으면 0을 출력하라. 풀이기본값을 21로 두고 세 수를 입력받아 빼는 식으로 풀었다.마지막 기본값과 0을 비교해 세 수의 합을 판단했다. 코드tot=21for _ in range(3): tot-=int(input())if tot>=0: print(1)else: print(0)
[BOJ/백준] 30614 - Port Robot (Python) 문제문제링크로봇은 소문자일 때 컨테이너를 저장소에 넣고 대문자일 때 저장소에서 컨테이너를 꺼낸다.작업이 끝날 후 저장소가 비어 있어야 안정된 작업이다.안정적인 작업인지를 판단하라. 풀이스택을 사용해 푸는 문제이다.islower()에서 True이면 소문자이므로 리스트에 추가한다.False이고 리스트가 비어있지 않고 대문자로 표시된 문자가 리스트에 마지막으로 저장된 문자와 같다면 꺼낸다.이외에는 안정적인 작업이 아니므로 0을 출력하고 종료한다.for문이 break으로 끝나지 않으면 else문이 실행된다.리스트가 완전히 비었을 때만 1을 출력한다. 코드import sysinput=sys.stdin.readlinen=int(input())s=input().strip()repository=[]for char in..