전체 글
-
1788. [Python]피보나치 수의 확장Python_알고리즘/Silver III 2023. 4. 19. 01:43
1. 문제 https://www.acmicpc.net/problem/1788 1788번: 피보나치 수의 확장 첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 다이나믹 프로그래밍 3. 파이썬 코드 def fibonacci(num): # 양수일때 피보나치 리스트 dp = [0, 1] # 음수일 경우 피보나치 리스트 dp_ma = [0, 1, -1] # 음수에서 절대값 구하기 위해서 사용되는 변수 check = 0 # n 값이 1000000을 넘지 않는다 했..
-
2003. [Python]수들의 합 2Python_알고리즘/Silver IV 2023. 4. 18. 00:10
1. 문제 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 2. 접근 방법 시간 제한: 0.5초 메모리 제한: 128MB 브루트 포스 3. 파이썬 코드 N,M = map(int,input().split()) num_list = list(map(int,input().split())) # M과 같은 값이있을 때 체크하는 변수 cnt = 0 # 합을 나타낼 변수 answer = 0 # 인덱스를 체크할 변수 i..
-
1639. [Python]행운의 티켓Python_알고리즘/Silver IV 2023. 4. 17. 03:10
1. 문제 https://www.acmicpc.net/problem/1639 1639번: 행운의 티켓 첫째 줄에 문자열 S가 주어진다. 문자열 S는 1보다 크거나 같고, 9보다 작거나 같은 수로만 이루어져 있고, 길이는 50보다 작거나 같은 자연수이다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 브루트 포스 3. 파이썬 코드 number = input() check_length = len(number) answer_list = [] # 행운의 티켓을 확인할 길이가 홀수인 경우 변수에서 -1 해서 짝수로 만들어준다. if check_length % 2 == 1: check_length -= 1 # 탐색할 길이가 0인 경우 반복문 종료 while check_len..
-
1515. [Python]수 이어 쓰기Python_알고리즘/Silver III 2023. 4. 14. 00:21
1. 문제 https://www.acmicpc.net/problem/1515 1515번: 수 이어 쓰기 세준이는 1부터 N까지 모든 수를 차례대로 공백없이 한 줄에 다 썼다. 그리고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다. 세준 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 브루트 포스 3. 파이썬 코드 answer = input() # 1부터 ~ N 까지 값 변수 cnt = 1 # 리스트 인덱스 index = 0 # 언제까지 반복할지 모르기때문에 while while True: # 10 이상일 경우 자리수마다 나눠서 값을 비교해야기 때문에 if cnt >= 10: # 두자리 수 이상일 경우 각 ..
-
1337. [Python]올바른 배열Python_알고리즘/Silver IV 2023. 4. 13. 01:55
1. 문제 https://www.acmicpc.net/problem/1337 1337번: 올바른 배열 첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 구현 정렬 3. 파이썬 코드 import sys input = sys.stdin.readline N = int(input()) # 인풋값을 저장할 리스트 num_list = [] # 각 인풋값 별 +4 를 저장할 리스트 check_list = [] for _ in range(N): # 인풋값을 변수로 받는다 n..
-
1920. [Python]수 찾기Python_알고리즘/Silver IV 2023. 4. 12. 11:50
1. 문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 이분 탐색 3. 파이썬 코드 import sys input = sys.stdin.readline N = int(input()) N_list = list(map(int,input().split())) M = int(input()) M_list = list(map(int,input()..
-
1755. [Python]숫자놀이Python_알고리즘/Silver IV 2023. 4. 11. 02:12
1. 문제 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 정렬 딕셔너리 3. 파이썬 코드 N,M = map(int,input().split()) ans_list = [] num_list = [] for i in range(N,M+1): num_list.append(str(i)) # 들어온 숫자를 문자로 변경할 딕셔너리 num_dict = { "1" : "one", "2" : "two", "3" : "three", "4" : "four", "5" : "five", "6" : "six", "7" : "seven", "8" : "eight", "9" : "nine", "0" : "zero" } # 문자를 다시 숫자로 변환 return_dict = { "one" : "1", "two" : "2", ..
-
1120. [Python]문자열Python_알고리즘/Silver IV 2023. 4. 9. 00:39
1. 문제 https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 브루트포스 3. 파이썬 코드 word_1,word_2 = input().split() # 첫번째 단어와 두번째 단어의 길이가 같은지 아닌지 판단 if len(word_1) == len(word_2): cnt = 0 # 길이가 같은경우 한개의 길이를 반복문을통해서 탐색 for i in ran..
-
2822. [Python]점수 계산Python_알고리즘/Silver V 2023. 4. 8. 02:44
1. 문제 https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 정렬 3. 파이썬 코드 num_list = [] cnt = 1 # 인풋값 8개 값들을 리스트 저장, 인덱스값까지 for _ in range(8): num_list.append([int(input()),cnt]) cnt += 1 # 들어온 숫자를 내림차순으로 정렬 num_list.sort(reverse=True) total..