320x100 PS84 [CLASS 2]백준 11866번, 1654번, 1874번 11866번 : 요세푸스 문제 0 요세푸스 순열에 대한 설명이 나와 있고, N과 K 가 주어질 때 이 순열을 출력하면 된다. 내 코드: n,k = map(int,input().split()) arr = [True for _ in range(n)] li = [] idx = 0 for _ in range(n): count = 1 while True: if arr[idx]: if count < k: count += 1 idx = (idx + 1) % n else: arr[idx] = False li.append(str(idx+1)) break else: idx = (idx + 1) % n print('') 리스트를 마치 원형처럼 구현하기 위해서는 모듈러(나머지)연산을 이용하면 된다. 리스트의 끝에 도달할 때마.. 2021. 1. 27. [CLASS 2]백준 10828번, 10845번, 10866번 - 스택, 큐, 덱 10828번 : 스택 스택을 구현하면 된다. 파이썬의 경우 list를 사용하여 push와 pop을 각각 append와 pop을 이용하여 간단하게 구현할 수 있다. 내 코드: import sys input = sys.stdin.readline stack = [] for _ in range(int(input())): cmd = input().split() if cmd[0] == 'push': stack.append(int(cmd[1])) elif cmd[0] == 'pop': if stack: print(stack.pop()) else: print(-1) elif cmd[0] == 'size': print(len(stack)) elif cmd[0] == 'empty': print(int(not bool(st.. 2021. 1. 25. [CLASS 2]백준 4949번, 9012번, 10773번, 10816번 4949번 : 균형잡힌 세상 괄호의 균형(?)을 맞추는 문제이다. 스택을 이용한다면 쉽게 풀 수 있다. 파이썬은 스택을 따로 모듈로 제공하지는 않고 대신 list의 pop과 append를 사용한다면 스택처럼 사용할 수 있다. 내 코드: def balanced(string): stack = [] for char in string: if char == '(' or char =='[': stack.append(char) elif char == ')' or char == ']': if stack: if char == ')' and stack.pop() != '(': return 'no' elif char == ']' and stack.pop() != '[': return 'no' else: return 'no'.. 2021. 1. 25. [CLASS 2]백준 1978번, 2108번, 2164번 1978번 : 소수 찾기 주어진 수들 중에 소수가 몇 개 있지 찾아 출력하는 문제이다. 어렵지 않다. 먼저 첫 번째 방법으로는 모든 숫자마다 해당 숫자보다 작은 수로 나누어 보아서 나누어지면 소수가 아니라고 판단하는 방법이다. 내 코드: import sys input = sys.stdin.readline # 모두 검사 def isPrimeNum(number): if number == 1: return 0 for i in range(2,number): if number % i == 0: return 0 return 1 # 입출력 n,numbers,count = input(),list(map(int,input().split())),0 for number in numbers: count += isPrimeNu.. 2021. 1. 24. 이전 1 ··· 16 17 18 19 20 21 다음