백준 / 퇴사 - 다이나믹 프로그래밍 (bottom-up) / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 퇴사 - 다이나믹 프로그래밍 문제 사이트: https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일..
백준 / 평범한 배낭 - 냅색 알고리즘 (다이나믹 프로그래밍) / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 평범한 배낭 문제 사이트: https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 문제 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 ..
백준 / Fly me to the Alpha Centauri / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: Fly me to the Alpha Centauri 문제 사이트: https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 ..
백준 / 9012번 괄호 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 괄호 문제 사이트: https://www.acmicpc.net/problem/9012 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만..
백준 / 10828번 스택 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 스택 문제 사이트: https://www.acmicpc.net/problem/10828 나의 풀이 import sys n = int(sys.stdin.readline()) new_stack = [] cnt = 0 for _ in range(n): tmp = sys.stdin.readline().split() if tmp[0] == "push": new_stack.append(tmp[1]) elif tmp[0] == "pop": if new_stack == []: print(-1) else: print(new_stack[-1]) new_stack.pop() elif tmp[0] == "size": print(len(new_stack)) elif tmp[0] ==..
백준 / 1929번 소수 구하기 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 소수 구하기 문제 사이트: https://www.acmicpc.net/problem/1929 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 나의 풀이 m, n = map(int,input().split()) sosu = [0] * (n + 1) answer = [] for i in range(2, n + 1): if sosu[i] == 0: answer.append(i) for j in range(i, n + 1, i)..
백준 / 2581번 소수 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 소수 문제 사이트: https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다..
백준 / 1978번 소수 찾기 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 소수 찾기 문제 사이트: https://www.acmicpc.net/problem/1978 나의 풀이 # 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. def isPrime(x): if x == 1: return False for i in range(2, x//2 +1): if x % i == 0: return False else: return True n = int(input()) m = list(map(int, input().split())) cnt = 0 for i in m: if isPrime(i) == True: cnt += 1 print(cnt) isPrime 함수로 소수를 판별해주었다. for문을 돌면서 입력 받은..
백준 / 10870번 피보나치 수 5 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 10870번 피보나치 수 5 문제 사이트: https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써..
백준 / 팩토리얼 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 팩토리얼 문제 사이트: https://www.acmicpc.net/problem/10872 나의 풀이 (재귀함수 이용) def factorial(n): result = 1 if n > 1 : result = n * factorial(n-1) return result else: return 1 n = int(input()) print(factorial(n))
백준 / 2869번 달팽이는 올라가고 싶다 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 2869번 달팽이는 올라가고 싶다 문제 사이트: https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B answer: answer = (A - B) * day day += 1 print(day) 두번 째 답안 ( 소숫점 고려 x, 오답) A, B , V = list(map(int,input().split()))..
백준 / 2292번 벌집 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 2292번 문제 사이트: https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하..