[백준_python] 한수 || 1065
·
🎯PS
www.acmicpc.net/problem/1065 1065번: 한수어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net#한수 n = int(input()) cnt = 0 if n
[백준_python] 요세푸스 문제 0 || 11866
·
🎯PS
www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)www.acmicpc.net하.. 해주면서 안되면 조건 추가하고 조건 추가하고,,, 이렇게 해도 되는건가 싶은 그런 느낌이였다 ㅎㅎ.. for i in range(k): cnt += 1 if cnt == len(people): cnt = 0cnt(인덱스)를 k만큼 이동을 해주다가 list 인덱스를 벗어나게 되면, 맨 처음 인덱스로 가도록 하였다.cnt -= 1 if cnt < 0: cnt = len(people)-1 result.append(people[cnt]) people.pop(cnt)일단, list의 인덱스가 0부터 시..
[백준_python] 좌표 정렬하기 || 11650
·
🎯PS
www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.www.acmicpc.net# 좌표 정렬하기 n = int(input()) result = [] for _ in range(n): x, y = map(int, input().split(' ')) result.append((x, y)) result.sort(key=lambda x: (x[0], x[1])) for i in result: print(i[0], i[1])
[백준_python] 덱 || 10866
·
🎯PS
www.acmicpc.net/problem/10866 10866번: 덱첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net# 덱 import sys from collections import deque deq = deque() result = [] n = int(sys.stdin.readline()) for _ in range(n): cmd_input = sys.stdin.readline().strip().split(' ') cmd = cmd_input[0] if cmd == "push_front": deq.appen..
[백준_python] 큐 || 10845
·
🎯PS
www.acmicpc.net/problem/10845 10845번: 큐첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net# 큐 import sys queue = [] result = [] n = int(sys.stdin.readline()) for _ in range(n): cmd_input = sys.stdin.readline().strip().split(' ') cmd = cmd_input[0] if cmd == "push": queue.append(int(cmd_input[1])) elif cmd == "pop..
[백준_python] 스택 || 10828
·
🎯PS
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()) stack = [] result = [] for _ in range(n): cmd_input = sys.stdin.readline().strip().split(' ') cmd = cmd_input[0] if cmd == "push": stack.append(int(cmd_input[1])) elif cmd == "p..
[백준_python] 숫자 카드 1, 2 || 10815, 10816
·
🎯PS
www.acmicpc.net/problem/10815 10815번: 숫자 카드첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,www.acmicpc.net기존에 가지고 있던 카드라면 1, 아니라면 0을 출력하는 문제이다. 내가 맨 처음 이분 탐색을 이용해주었던 문제라서 다른 분들 코드를 보며 참고했던 기억이 난다. 또 다른 이분 탐색 문제로는, 전에 풀었던 수 찾기(1920) www.acmicpc.net/problem/1920 [백준_python] 이분 탐색 - 수 찾기 || 1920 :: coding 공부 ~^~^ (tistory.co..
[백준_python] 괄호 || 9012
·
🎯PS
www.acmicpc.net/problem/9012 9012번: 괄호괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고www.acmicpc.net#괄호 t = int(input()) result = [] for _ in range(t): vps = list(input()) cnt = 0 for i in vps: if i == "(": cnt += 1 else: cnt -= 1 if cnt < 0: break if cnt == 0: result.append("YES") else: result.append("NO") print(*r..
[백준_python] 수 정렬하기 2 || 2751 (pypy3, 시간 초과)
·
🎯PS
www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.www.acmicpc.net문제를 보면서 전에 풀어본 수 정렬하기(2750)과 뭐가 다르냐?? 하면서 저번에 넣었던 코드를 그대로 넣어보았다.#수 정렬하기 2 #? 시간초과 n = int(input()) num = [] for _ in range(n): num.append(int(input())) num.sort() print(*num, sep = "\n")알고보니, 2750때와는 다르게, 수의 범위가 훨씬 컸다. 그래서인지 결과..
[백준_python] 최대공약수와 최소공배수 || 2609 (유클리드 호제법)
·
🎯PS
www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.www.acmicpc.net유클리드 호제법a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. (b가 0이 될 때까지 반복)gcd(24, 18) = gcd(18, 6) = gcd(6, 0)최소공배수는 a*b/최대공약수 라고 한다.a, b = map(int, input().split(' '))a_max = []b_max = []for i in range(1, a+1):    if a % i == 0:        a_max.append(i)for..