🚩 큐(queue) thinking 포인트는 deque 모듈 을 사용하는 것이다!!!!! 그냥 pop(0)으로 풀면 시간초과 남 deque 사용하는 이유 : popleft의 시간차이 때문에 list의 경우 pop()으로 마지막 값을 꺼내는 경우 O(1) (일정한 시간) 시간이 걸리는데, pop(0)으로 가장 앞단에 값을 꺼낼때는 list 크기에 따라 읽어 오는 시간이 달라져 O(n) 시간이 걸림. 하지만 deque를 사용할 경우에, popleft()를 사용하면 리스트의 pop(0)과 같은 기능을 주면서 걸리는 시간은 O(1)이 걸린다. 코드 (pass) from collections import deque N = int(input()) queue = deque() for i in range(1, N+1)..
🚩 DFS, 백트래킹, 재귀함수, 스택 thinking for문을 돌면서 1부터 리스트에 넣고 M개가 다 쌓이면 출력하도록 작성함. 어차피 for문이 숫자 순서대로 돌기 때문에 수열의 순서는 굳이 고려 안함. 이미 방문했으면 건너뛰고, 방문 안했으면 방문 체크 한 후, 출력리스트에 넣고 다음 함수를 호출. 코드1 방문체크로 푼 풀이 def DFS(): if len(s) == M: print(*s) return for i in range(1, N+1): if visited[i]: # 이미 방문했으면 건너뜀 continue # 방문 안했으면 방문체크 후, 출력 리스트에 넣음 visited[i] = True s.append(i) DFS() # 함수 다시 호출 s.pop() # 원상복귀 과정 필요 visited..
🚩 브루트포스 완전탐색 문제 thinking 3개를 골라야 하므로 3중 for문을 돌면서 첫번째 카드 뽑고, 그 이후 카드들 중에서 두번째 카드 뽑고, 두번째카드 이후 카드들 중에서 마지막 카드를 뽑아 M보다 작거나 같으면 리스트에 넣는다. 그 리스트의 원소 중 max 값을 뽑으면 된다. 코드 N, M = map(int, input().split()) card = list(map(int, input().split())) res = 0 # 결과값 초기화 # for 문 돌면서 비교검사 for i in range(N): for j in range(i+1, N): for k in range(j+1, N): if card[i]+card[j]+card[k]

Intro 💡 2차원 배열의 인덱스 접근을 어떻게 할것인가? 아래 그림처럼 m x n 배열을 생각해보자. 배열의 인덱스는 오른쪽으로 갈 수록, 아래로 갈 수록 증가하기 때문에 다음과 같이 쓸 수 있다. 노랭이를 기준으로 봤을 때, 노랭이의 위 아래는 노랭이와 column 인덱스가 동일하고 row 인덱스는 하나씩 차이난다. 노랭이의 좌우는 노랭이와 row 인덱스가 동일하고 column 인덱스는 하나씩 차이난다. 따라서, 인덱스를 활용해서 방향전환을 하고 싶을때는 delta row(dr), delta column(dc) 리스트를 만들고 접근하면 된다 # 상, 우, 하, 좌 dr = [-1, 0, 1, 0] dc = [0, 1, 0, -1] # nr: next row, nc: next column # cr: ..

thinking 도착점의 column 인덱스를 찾아서 역으로 위로 올라가면서 시작점의 column 인덱스를 찾는 방향으로 설정 1. 위로 가는 경우: 왼쪽이나 오른쪽이 1이 나오면 direction 체인지 2. 오른쪽으로 가는 경우: 쭉 가다가 0 나오면 위로 턴 (d: 1 -> 0) 3. 왼쪽으로 가는 경우: 쭉 가다가 0 나오면 위로 턴 (d: 2 -> 0) 반복문을 돌리면서 이동해야 하는데 코드를 도대체 어케 짜야 하는지 감이 안왔다...... 그래서 아래 처럼 그림판으로 일일이 좌표를 찾으며 디버깅을 했다 ^^ 100 x 100 배열이라 눈알 빠질뻔 ㅎ;; 답답하고 멍청해보일지라도 이해에 아주 직빵이었다 ㅎ 위로 쭉 갈때는 column은 동일하고 row만 바뀐다. 이때, 왼쪽이나 오른쪽이 1이면 ..
- BFS
- 21609 상어 중학교
- 파이썬
- merge 에러
- swea
- 2579 계단오르기
- 프로그래머스
- git 미러링
- dfs
- Python
- 기지국설치
- 20056 마법사 상어와 파이어볼
- 영어끝말잇기
- merge에러
- 알고리즘
- 백준
- dp
- react
- 20057 마법사 상어와 토네이도
- 보석쇼핑
- 브루트포스
- 2018 카카오 공채
- 17406 배열돌리기4
- 삼성기출
- 삼성코테
- Total
- Today
- Yesterday