Python_알고리즘/Silver IV
-
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..
-
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..
-
1235. [Python]학생 번호Python_알고리즘/Silver IV 2023. 4. 1. 22:59
1. 문제 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 문자열 구현 3. 파이썬 코드 import sys input = sys.stdin.readline N = int(input()) num_list = [] for _ in range(N): num_list.append(input().strip()) # 문자의 길이를 받아올 변수 생성 => 몇자리 수까지 존재하는지 확인 total_length = len(num_list[0]) # 문자열 슬라이싱을 위해 1부터 맨마지막숫자까지 for i in range(1,total_length+1): # 체크해줄 변수생성 flag = 0 # 딕셔너리 생성하여 매 딕셔너리마다 값 체크 ans_list = {} for j in num_list: # 숫자 리스..
-
2578. [Python]빙고Python_알고리즘/Silver IV 2023. 2. 5. 00:16
1. 문제 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현 3. 파이썬 코드 # 내 빙고 my_bingo = [ list(map(str,input().split())) for _ in range(5)] # 사회자가 부르는 빙고 ans_bingo = [ list(map(str,input().split())) for _ in range(5)] # bingo 일치하는 값 저장 리스트 bingo_lis..
-
10610. [Python]30Python_알고리즘/Silver IV 2023. 1. 31. 23:52
1. 문제 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 문자열 정렬 조건 3. 파이썬 코드 N = input() # 숫자를 담을 리스트 생성 num_list = [] # 30으로 나눠야기 때문에 3의 배수인지 확인하는 변수 생성 total = 0 # 정답 출력할 문자 변수 선언 ans = "" # 30의 배수이므로 30보다 작으면 -1 출력 if int(N) < 30: print(-1..
-
1789. [Python]수들의 합Python_알고리즘/Silver IV 2023. 1. 30. 22:24
1. 문제 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 수의 합 구하는 방법 3. 파이썬 코드 S = int(input()) s = S*2 n = int(1) # 무한 반복문으로 제일 높은 n의 값을 찾음 while True: # S*2 < n*(n+1) 한 이유는 1~N 까지 합을구하는 식이 n*(n+1)//2 이기 때문이다. # s 값이 딱나누어 떨어지지 않는 경우 그 값을 딱 초과했을 때 break를 걸어준다. # break 됐을때 count -1 해주는 이유는 값이 한개 더 더해졌기 때문에 빼..
-
11047. [Python]동전 0Python_알고리즘/Silver IV 2023. 1. 30. 21:15
1. 문제 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 탐욕 알고리즘(Greedy Algorithm) 3. 파이썬 코드 N,K = map(int,input().split()) # 돈 담을 리스트 생성 money = [] for _ in range(N): money.append(int(input())) cnt = 0 # ..