🚩 자료구조, 문자열, 정렬 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) 한줄평 이 문제는 걍 수학 문제 같았음. . .
문제 thinking 아주 전형적인 백트래킹 & dfs 문제이다 ! 모든 경우를 전부 따져보되, 이미 답이 안되는 경우(값이 기존 결과값보다 큰 경우)는 바로 중단하면 된다. 열과 행이 겹치면 안되므로 dfs라는 함수의 인자로 행(i)을 넣어, 행을 증가시키며 경우를 체킹했고, visited 라는 리스트를 만들어 열의 방문여부를 확인하도록 코드를 구성했다. 코드 def dfs(i, tmp): # 행, 현재 타임 합 global res if tmp >= res: return if i == N: res = min(tmp, res) return for j in range(N): if not visited[j]: visited[j] = 1 dfs(i+1, tmp+a[i][j]) visited[j] = 0 T =..
문제 thinking 정류장별 배터리 용량을 리스트로 만든 후, 1번 정류장부터 돌면서 교환횟수를 구해 비교했다. 최소한의 교체횟수를 묻고 있으므로 이전횟차까지의 결과값보다 같거나 크면 return 시키도록 함수를 구성했다. 함수의 인자로 현재위치(i), 최대로 갈 수 있는 범위(max_i), 해당타임 교환횟수(cnt)를 두어 일단 갈 수 있는 만큼 최대로 가보면서 cnt 값을 비교했다. + 교환횟수처럼 계속 변하는 값을 함수의 인자로 두면 코드짜는게 더 쉽다. 굿 ! ! ! 코드 def dfs(i, max_i, cnt): # 현재위치(인덱스), 최대로 갈 수 있는 범위, 해당타임 교환횟수 global res if cnt >= res: return if max_i >= N: res = min(cnt, r..
- 20056 마법사 상어와 파이어볼
- BFS
- 브루트포스
- swea
- dp
- react
- merge 에러
- 17406 배열돌리기4
- 삼성코테
- Python
- 21609 상어 중학교
- merge에러
- 기지국설치
- git 미러링
- 2579 계단오르기
- 삼성기출
- 2018 카카오 공채
- 알고리즘
- 프로그래머스
- 20057 마법사 상어와 토네이도
- 영어끝말잇기
- dfs
- 파이썬
- 보석쇼핑
- 백준
- Total
- Today
- Yesterday