BAEKJOON (Python) 70

BAEKJOON_1455 "뒤집기 II" PYTHON

[백준] 1455번 Python 파이썬 https://www.acmicpc.net/problem/1455 1455번: 뒤집기 II 세준이는 동전 뒤집기를 하려고 한다. 세준이는 동전을 N×M개 가지고 있다. 동전은 세로로 N개, 가로로 M개 크기의 직사각형에 차곡차곡 놓여져 있다. 동전의 앞면을 0이라고 하고 뒷면을 1이라고 www.acmicpc.net Greedy Algorithm을 이용하여 푸는 문제이다. 입력받은 행렬의 앞쪽부터 변경할 경우, 뒤쪽을 바꾸면서 앞쪽이 또 바뀔 수 있기 때문에 뒤쪽의 수부터 바꾸어 준다. n, m = map(int, input().split()) lst = [] result = 0 for _ in range(n): a = list(map(int, input().rstr..

BAEKJOON_11866 "요세푸스 문제 0" PYTHON

[백준] 11866번 Python 파이썬 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net deque를 이용하여 문제를 해결하였다. k번째가 되기 전의 수는 리스트의 뒤로 보내고, k번째 수는 리스트에서 제거하고 결과 리스트에 담아준다. from collections import deque n, k = map(int, input().split()) number = deque(range(1, n + 1)) result = [] while number: for _ in range(k - 1): number.append(number.p..

BAEKJOON_1436 "영화감독 숌" PYTHON

[백준] 1436번 Python 파이썬 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 규칙을 찾아서 풀려고 시도했는데 잘 풀리지 않아 다른 사람들의 풀이를 보고 참고하여 해결하였다. 해결 방법은 첫 종말의 수인 666부터 while문을 사용하여 1씩 더해주고 666이 들어간 수의 개수를 세준다. 666이 들어간 수를 세어 n과 같아지면 종료하고, 그 때의 종말의 수를 출력해준다. n = int(input()) end_number = 666 ..

BAEKJOON_7568 "덩치" PYTHON

[백준] 7568번 Python 파이썬 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 이중 for문을 사용하여 사람마다 키와 몸무게를 비교해주었다. import sys n = int(sys.stdin.readline()) people = [] for i in range(n): w, h = map(int, sys.stdin.readline().split()) people.append((w, h)) for i in people: co..

BAEKJOON_1193 "분수찾기" PYTHON

[백준] 1193번 Python 파이썬 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 생각보다 너무 오래걸렸다.. 다른 사람들의 코드를 보고 이해한 후 해결하였는데 n번째 줄을 구하는 방법을 이해하는 게 어려웠다. n = int(input()) i = 1 while n > i: n -= i i += 1 if i % 2 == 0: print(str(n) + '/' + str(i + 1 - n)) else: print(str(i + 1 - n) + '/' + str(n)) 혼자 공부하며 올리는 블로그입니다. 틀린 내용은 댓글 남겨주시면 감사하겠습니다.

BAEKJOON_10828 "스택" PYTHON

[백준] 10828번 Python 파이썬 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys n = int(sys.stdin.readline()) lt = [] for i in range(n): order = list(map(str, sys.stdin.readline().split())) a = order[0] if a == 'push': lt.append(order[1]) elif a == 'pop': if ..

BAEKJOON_9012 "괄호" PYTHON

[백준] 9012번 Python 파이썬 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 처음에는 리스트를 만든 후 ' ( ' 를 입력받으면 리스트에 담고 ' ) ' 를 입력받으면 pop() 함수를 이용해서 리스트에서 제거해주었는데 리스트에 아무것도 없는데 ' ) ' 를 입력받으면 IndexError가 뜬다. import sys n = int(sys.stdin.readline()) lt = [] f..

BAEKJOON_10773 "제로" PYTHON

[백준] 10773번 Python 파이썬 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 스택 알고리즘에 관한 문제이다! money라는 리스트를 만들어서 a를 n개 입력받는다. a가 0일 경우에는 money 리스트의 가장 마지막 인덱스 원소를 제거하고, 0이 아닐 경우에는 money에 원소를 담아준다. 가장 마지막 인덱스의 원소를 제거할 때는 pop() 함수를 사용한다. import sys n = int(sys..

BAEKJOON_14916 "거스름돈" PYTHON

[백준] 14916번 Python 파이썬 https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 거스름돈을 남겨줄 수 없는 경우는 n이 1이거나 3일 때이다. n을 5로 나누고 남은 나머지가 홀수라면 다시 나머지에 5를 더하고 2로 나누어 주고, 5로 나누고 남은 나머지가 짝수라면 바로 2로 나누어준다. coin = [5, 2] n = int(input()) count = 0 if n == 1 or n == 3: print(-1) else: count = n // 5 n = n % 5 if n % 2 != 0: count = count - 1 n = n + 5 print..

BAEKJOON_2720 "세탁소 사장 동혁" PYTHON

[백준] 2720번 Python 파이썬 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 그리디 알고리즘의 대표 예시로 자주 나오는 최소 동전 갯수로 거스름돈을 주는 문제였다. import sys n = int(sys.stdin.readline()) money = [25, 10, 5, 1] result = [] for i in range(n): re = int(sys.stdin.readline()) for j in range(4): result.append(str(re // money[j])) re = re % mo..