목록Algorithm (38)
선릉역 1번 출구
import sys def push(num): stack.append(num) def pop(): if stack: return stack.pop() return -1 stack = [] for _ in range(int(input())): a = sys.stdin.readline().rstrip().split() for i in range(len(a)-1,-1,-1): push(a[i]) for i in range(len(a)): print(pop()[::-1], end=" ") print() 이 문제는 문장을 입력하면 그 문장을 띄어쓰기로 끊어 반대로 출력하는 문제이다. 나는 "I am happy today"을 띄어쓰기를 기준으로 뒤에서부터 stack에 넣어줬고 pop으로 stack에서 단어를 꺼낼 ..
import sys def push(num): stack.append(num) def size(): return len(stack) def empty(): if (not stack): return 1 return 0 def pop(): if stack: return stack.pop() return -1 def top(): if stack: return stack[-1] return -1 stack = [] for _ in range(int(input())): a = sys.stdin.readline().rstrip().split() if a[0] == "push": push(a[1]) elif a[0] == "top": print(top()) elif a[0] == "size": print(size()..
1. 10872 def factorial(num): if num
사전적 정의의 재귀란 어떤 것을 정의할 때 자기 자신을 참조하는 것을 말하고 컴퓨터에서는 재귀 호출(recursion call)의 형태로 많이 사용된다. 장점: 코드의 간결함 단점: 무한 재귀호출의 위험성 재귀적 정의의 구성 1. 기본 단계: 몇몇 초기 원소들을 기술한다. 2. 귀납적 단계: 이미 존재하는 원소들로부터 새로운 원소들을 구성하는 규칙을 제시 가장 많이 사용하는 코드인 factorial code이다. def factorial(num): if num
브루트 포스란 무차별 대입 공격을 일컫는 말로 특정 암호를 풀기 위해서 모든 값을 대입하는 것을 의미한다. 1. 2798 N, M = map(int, input().split()) num_ls = list(map(int, input().split())) max = [] key = 0 for i in range(len(num_ls)-2): for j in range(i+1,len(num_ls)-1): for k in range(j+1, len(num_ls)): max.append(num_ls[i] + num_ls[j] + num_ls[k]) //3가지 카드 값 리스트 만들기 max = list(set(max)) //중복 제거 max.sort() //정렬 if max[len(max)-1] > M: //3가지..
1. 1978 cnt = 0 a = int(input()) prime = input().split() prime_ten = [2, 3, 5 ,7] for i in range(a): if int(prime[i]) in prime_ten: cnt += 0 elif int(prime[i]) % 2 == 0: cnt += 1 else: if (int(prime[i])**(1/2)) % 1 == 0: cnt +=1 else: for j in range(2,int(int(prime[i])**(1/2))+1): if int(prime[i]) % j == 0: cnt += 1 break print(len(prime)-cnt) #소수를 판별하려면 그 수(n)를 루트(n)까지 나눠보면 된다. 그리고 2로 나눠지는 수는 2..