반응형 백준397 (Python/🥈3)백준 알고리즘 14425번: 문자열 집합 문제 출처:https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 풀이: (N,M) = sys.stdin.readline().split() setword_S = set() # 집합에 포함되어 있는 문자열들 setword = list() # 검사할 문자열들 count = 0 for i in range(int(N)): # 집합에 들어갈 단어들 setword_S.add(sys.stdin.readline().rstrip()) .. 2022. 5. 26. 이진탐색/선형탐색 Search 알고리즘 1) 선형탐색 O(N) 선형탐색 이란 일렬로 된 자료를 왼쪽부터 차례대로 탐색하는 것을 말한다 즉 배열이 커질수록 시간이 길어지며 시간복잡도는 O(N) 을 이룬다 인풋이 많을수록 수행하는 시간또한 선형적으로 증가하게 된다. 구현이 아주 쉽다는 장접이 있지만 시간 복잡도가 O(N) 이라서 효율적이지 않다는 단점이 있다. def solution(L, x): for i in range(len(L)): if x == L[i]: return i return -1 L1 = [3,5,2,8,6,1,7] x = 2 y = 7 print(solution(L1, x)) print(solution(L1, y)) # 선형탐색 예제 # 2 6 출력 여기서 발전한 방법이 이진탐색이다. 1) 이진탐색 O(lo.. 2022. 5. 26. (Python/🥈4)백준 알고리즘 10815번: 숫자 카드 문제 출처:https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이: n = int(input()) arr = list(map(int, input().split())) n2 = int(input()) arr2 = list(map(int, input().split())) res = [] for i in arr2: if i in arr: res.append(1) else: res.append(0) print(*res) 쉽.. 2022. 5. 25. (Python/🥈2)백준 알고리즘 18870번: 좌표 압축 문제 출처:https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 풀이: sys import n = int(input()) arr = list(map(int, input().split())) arr_list = sorted(list(set(arr))) # 중복제거 arr_dic = {} for i in range(len(arr_list)): # arr_list 에 길이만큼 포문을 돌려 arr_dic[a.. 2022. 5. 25. (Python/🥈5)백준 알고리즘 10814번: 나이순 정렬 문제 출처:https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 풀이: N = int(sys.stdin.readline()) array = [] for i in range(N): array.append(list(map(str,sys.stdin.readline().split()))) array.sort(key = lambda x: (x[1],x[0]),reverse=True) for i in array: print(i[0],i[1]) 처음에는 쉽네 생각하고.. 2022. 5. 24. (Python/🥈5)백준 알고리즘 1181번: 단어 정렬 문제 출처:https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이: import sys N = int(sys.stdin.readline()) array = [] for i in range(N): array.append(sys.stdin.readline().rstrip()) set = set(array) #중복값을 제거 array = list(set) array.sort() # 일단 사전순으로 정렬 해주고 array.sort(key=le.. 2022. 5. 24. 이전 1 ··· 58 59 60 61 62 63 64 ··· 67 다음 반응형