🚩 자료구조, 문자열, 정렬 thinking 중복없이 처리하기 위해 듣도 못한 사람과 보도 못한 사람을 각각 set에 넣은 후, 교집합을 구해 정렬했다. 파이썬 set의 특징 덕분에 쉽게 해결했다. 코드 N, M = map(int, input().split()) set_N = set() # 듣도 못한 사람의 명단을 담을 set set_M = set() # 보도 못한 사람의 명단을 담을 set for _ in range(N): set_N.add(input()) for _ in range(M): set_M.add(input()) res = sorted(list(set_N & set_M)) # 교집합을 구한다음 정렬 print(len(res)) for ele in res: print(ele) 한줄평 채점하는데..
🚩 그래프탐색, BFS thinking 1. fail (메모리초과) 처음 풀었을때는 N과 K의 범위가 커서 방문체킹을 인덱스로 접근하는 리스트로 안 만들고 딕셔너리로 만들었는데 메모리 초과가 났다. 구글링해보니, 이렇게 하면 방문했던 노드도 큐에 다시 넣어져서 그렇다고 한다. ⭐ 메모리 초과 발생 이유 : 과거에 했던 값을 계속 처리하기 위해 큐에 값을 넣는 것 때문에 발생함. ex. 10에서 갈 수 있는 노드: 9, 11, 20. but, 10까지 갈 수 있는 방법 엄청 많음. (9->10, 11->10, 5->10 ... ) 2. success 😀 방문체킹 리스트를 인덱스로 접근해 100,001 개의 칸으로 만들어줬다. 칸이 10만개 있어도 아무런 상관없다. 괜히 숫자 커지고 for문 많아지면 쫄게된..
🚩 수학 thinking 10이 되려면 2x5이므로 2와 5의 개수 중 작은것을 구하면 된다. 근데 무조건 5의 개수가 2보다 더 작게 나오기 때문에 5가 나온 횟수만 구하면 된다. 5가 나온 횟수는 계속해서 5로 나눈 몫의 합이므로 while문으로 구성했다. 코드 N = int(input()) t = N - N % 5 # input숫자를 5로 나눈 나머지로 빼서 5의 배수로 만들어준다 ans = 0 while t >= 5: # 5로 계속해서 나누어주기 위한 조건설정 ans += t // 5 # 5로 나눈 몫을 더한다 t //= 5 print(ans) 한줄평 이 문제는 걍 수학 문제 같았음. . .
🚩 동적프로그래밍(DP) thinking 1. 규칙을 찾아보려 했으나 실패 -> 규칙 없음 ! 2. DP 접근 인풋숫자의 크기만큼 배열을 만들고, 계산횟수를 해당 인덱스에 입력 & 비교하면서 최소 연산값을 구하는 것이다. 앞에서 부터 계산을 해가면서 카운팅을 늘려나가는 것이 핵심이다 ! ◾ 점화식 : dp(N) = min ( dp(N//3)+1, dp(N//2)+1 , dp(N-1)+1 ) ◾ 시간복잡도 : {배열의 크기 x O(1)} => O(N) 코드 N = int(input()) dp = [0 for _ in range(N+1)] # 인덱스가 N이 되도록 N+1 크기의 배열을 만듦 for i in range(2, N+1): dp[i] = dp[i-1] + 1 # dp(N-1)+1 계산먼저 해주고 i..
🚩 수학, 그리디 알고리즘, 문자열, 파싱 thinking - 기준으로 쪼갠 후, 리스트의 첫번째 요소만 더하고 그 이후 요소는 다 빼면 된다. ex. 50+32-48+72-145+32-5-3 이라면 50+32-(48+72)-(145+32)-5-3 이 가장 최소가 되는 방법이다. 1. - 기준으로 쪼갠다 -> ['50+32', '48+72', '145+32', '5', '3'] 2. 첫번째 요소는 + 기준으로 쪼갠 후 더한다 -> 50+32 3. 나머지 요소는 + 기준으로 쪼갠 후 다 뺀다 -> -48-72-145-32-5-3 코드 input_lst = input().split('-') tmp = input_lst[0].split('+') res = 0 for ele in tmp: res += int(e..
- dfs
- git 미러링
- 기지국설치
- merge에러
- 브루트포스
- merge 에러
- react
- 보석쇼핑
- dp
- 2579 계단오르기
- Python
- 백준
- 영어끝말잇기
- 프로그래머스
- 삼성코테
- 20057 마법사 상어와 토네이도
- 삼성기출
- BFS
- swea
- 파이썬
- 20056 마법사 상어와 파이어볼
- 17406 배열돌리기4
- 2018 카카오 공채
- 21609 상어 중학교
- 알고리즘
- Total
- Today
- Yesterday