반응형

분류 전체보기 127

[python] 1920. 수 찾기

문제 잘못된 풀이 import sys # 시간초과 N = int(input()) num_list = list(map(int, sys.stdin.readline().split())) M = int(input()) check_list = list(map(int, sys.stdin.readline().split())) for i in check_list: if i in num_list: print("1") else: print("0") 해당 문제는 주어진 수가 리스트 안에 있는지 여부를 판단하는 문제이다. 나는 문제를 딱 보자마자 바로 in을 써서 푸는 방법을 떠올렸고, 실제로 in을 사용해서 문제를 해결하면 쉽게 풀리는 문제이다. 하지만, 오늘도 시간초과 ... 문제를 보고 바로 떠오르는 해결방법이라도, 코..

[python] 1003. 피보나치 함수

문제 잘못된 풀이 import sys T = int(input()) cnt_0 = 0; cnt_1 = 0 def fibo(n): global cnt_0 global cnt_1 if n == 0: cnt_0 += 1 return 0 elif n == 1: cnt_1 += 1 return 1 else: return fibo(n-1) + fibo(n-2) for i in range(T): n = int(sys.stdin.readline()) result = fibo(n) print(cnt_0, cnt_1) cnt_0 = 0; cnt_1 = 0 나는 피보나치를 문제의 설명처럼 재귀(recursive)로 풀고자 하였다. 0과 1을 count하는 변수를 global로 선언하고 fibo() 함수에서 구하는 로직으로 ..

[python] 18870. 좌표 압축

문제 잘못된 풀이 import sys N = int(input()) num_list = list(map(int, sys.stdin.readline().split())) sorted_list = sorted(set(num_list)) answer_list = [] for i in num_list: idx = sorted_list.index(i) # O(n)의 시간 복잡도 -> 시간초과 answer_list.append(idx) print(*answer_list) 해당 문제는 입력한 숫자보다 작은 수가 몇 개나 있는지 체크하는 문제이다. 바로 떠오른 방법이 .index()로, 원하는 요소가 리스트 중에 몇 번째인지 그 인덱스를 return해주는 라이브러리이다. 하지만 .index()는 O(n)의 시간복잡도로..

[python] 1427. 소트인사이드

문제 올바른 풀이 string = str(input()) str_list = [] for i in string: str_list.append(i) str_list = sorted(str_list,reverse=True) make_int = "" for i in str_list: make_int += i print(int(make_int)) 해당 문제는 배열을 내림차순으로 정렬하는 문제이다. 먼저 입력받은 값을 따로 떨어트려야 하기 때문에 str_list에 모두 append를 해주고, 해당 리스트를 reverse=True로 정렬해준다. 그리고 한 글자 한 글자 붙여주기 위해 for문으로 빈 string에 붙여주고 int 값으로 출력했다. 정 ! 답 ! (sorted() 없으면 못 살아 .. ) 아니 구현할..

[python] 1181. 단어 정렬

문제 올바른 풀이 1 N = int(input()) str_list = [] answer_list = [] for i in range(N): string = str(input()) # sys.stdin.readline() str_list.append(string) str_list = sorted(str_list) str_list = sorted(str_list, key=len) for i in str_list: if i in answer_list: # 겹치지 않도록 안에 있으면 continue continue else: # 없으면 추가 answer_list.append(i) print(*answer_list, sep='\n') 해당 문제는 단순 정렬을 하는 것이 아니라, 길이가 짧은 것부터 정렬하고 길이..

[python] 2108. 통계학

문제 올바른 풀이 import sys from collections import Counter N = int(input()) num_list = [] for i in range(N): num = int(sys.stdin.readline()) num_list.append(num) print(round(sum(num_list)/N)) # 산술평균 num_list = sorted(num_list) print(num_list[len(num_list)//2]) # 중앙값 count_list = Counter(num_list) max(count_list, key=count_list.get) count_list =[k for k, v in count_list.items() if max(count_list.values..

자료구조 (Data Structure) 알고리즘(Algorithm), 시간 복잡도

📍 자료구조(Data Structure)는 데이터를 저장하고 관리하는 방식이다.수 많은 데이터들을 어떤 자료구조로 저장하느냐에 따라 검색과 같은 알고리즘의 속도가 달라진다.실행시간이 달라질 수 있고, 메모리 공간의 사용량에도 영향을 미친다.=  따라서, 자료구조와 알고리즘은 실행시간과 메모리 사용량을 고려하여 효율적으로 설계해야 한다. 📍 알고리즘(Algorithm)은 어떤 문제를 해결하는 방법을 말한다.전화번호부를 자료구조라고 한다면, 번호를 찾는 방법을 알고리즘이라고 할 수 있다. 전화번호부(자료구조)에 따라 번호를 찾는 방법(알고리즘)이 달라질 수 있다. 📍 좋은 알고리즘이란, 시간 복잡도 & 공간 복잡도 & 구현 복잡도시간 복잡도: 적은 시간을 잡아먹는 알고리즘일수록 좋다. Big-O의 시간..

[python] 11728. 배열 합치기

문제 잘못된 풀이 len_A, len_B = map(int, input().split()) A = list(map(int, input().split())) # list로 저장 B = list(map(int, input().split())) # list로 저장 new_list = [] while len(A) >= 0 and len(B) >= 0: if len(A) == 0 and len(B) != 0: # A가 비어 있을 때 a = 100 b = min(B) elif len(A) != 0 and len(B) == 0: # B가 비어 있을 때 a = min(A) b = 100 elif len(A)==0 and len(B) ==0: break else: # 둘 다 안 비어있을 때 a = min(A) b = m..

[python] 9020. 골드바흐의 추측

문제 잘못된 풀이 import sys T = int(input()) def check_prime(number): prime_ = [True] * number #number 갯수만큼 true list 만듦 for i in range(2, int(number**0.5)+1): # 2부터 제곱근 n+1까지 if prime_[i]: # i번째 index가 true이면 for j in range(i*2, number, i): # 각 수의 배수 prime_[j] = False return [i for i in range(2, number) if prime_[i] == True] def find_min(result): min_list = [] for i in range(len(result)): if result[i]..

728x90
반응형