🚩 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 W로 시작하는 경우 ◾ WBWBWBWB -> W로 시작했는데 첫번째칸이 W가 아니면 다시 칠해야함 ◾ BWBWBWBW -> W로 시작했는데 두번째칸이 B가 아니면 다시 칠해야함 B로 시작하는 경우 ◾ BWBWBWBW -> B로 시작했는데 첫번째칸이 B가 아니면 다시 칠해야함 ◾ WBWBWBWB -> B로 시작했는데 두번째칸이 W가 아니면 다시 칠해야함 ⇒ WBWB or BWBW가 번갈아가면서 나오니까 행+열 인덱스의 합을 2로 나눈 나머지로 생각 (0101 이런식으로) 코드 N, M = map(int, input().split()) # N:행 M:열 a = [list(input()) for _ in range(N)] res = [] # 8x8 체스판 탐색 for i in r..
🚩 브루트포스 완전탐색 문제 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]
진기는 0초부터 붕어빵을 만들기 시작하며, M초의 시간을 들이면 K개의 붕어빵을 만들 수 있다. N명의 사람들이 오는 시간에 따라 붕어빵을 제공할 수 있는지 없는지를 판별하는 문제이다. thinking 무조건 손님 1명한테는 1개의 붕어빵을 판매하기 때문에 하나씩 카운트를 해주면 된다. 0초부터 M초 마다 붕어를 만듦으로 M, 2M, 3M, ... 초 마다 K, 2K, 3K의 붕어빵이 남는다. 그렇다면 일반적으로 x초 일때의 붕어 생산량과 그 전에 사간 사람의 수를 빼면 x초의 붕어빵 재고를 알 수 있다. 재고가 음수가 되면 다 팔렸다는 뜻이므로 Impossible 을 출력하면 된다. 손님이 온 시간을 arrive_time 이라는 리스트에 담아 올림차순으로 소팅을 해준 후, 소팅한 arrive_time ..
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: ..
- BFS
- 삼성코테
- 보석쇼핑
- 2579 계단오르기
- 알고리즘
- Python
- 20056 마법사 상어와 파이어볼
- 기지국설치
- react
- 2018 카카오 공채
- 프로그래머스
- git 미러링
- swea
- 브루트포스
- dp
- merge에러
- 파이썬
- 20057 마법사 상어와 토네이도
- 17406 배열돌리기4
- dfs
- 21609 상어 중학교
- 영어끝말잇기
- 백준
- 삼성기출
- merge 에러
- Total
- Today
- Yesterday