🚩 그래프, BFS thinking 큐를 만든다음, 사방 탐색하면서 아직 방문 안했고(==색깔 확인 안했고) 같은 색인 경우 방문체크 후 큐에 넣었다. 적록색약인 경우는 R과 G가 같으므로 하나의 컬러로 통일 시킨다음 BFS과정을 똑같이 반복했다. N이 100까지라 이중 for문 여러번 돌려도 상수*N*N= c*10000 밖에 안되서 시간초과 노걱정 코드 from collections import deque def BFS(x,y): q.append((x,y)) dx = [-1,0,1,0] dy = [0,1,0,-1] visited[x][y] = 1 while q: x, y = q.popleft() for d in range(4): nx = x + dx[d] ny = y + dy[d] # 인덱스 범위 안에..
🚩 브루트포스 thinking 아악 진짜 이거 계속 틀려서 구글링해봤다 나는 N의 최대 범위가 500,000이라 500000까지만 체킹하면 된다고 생각했는데 다른사람들은 다 range를 100만으로 잡는게 진짜 이해가 안갔다. 50만 채널까지 존재하기 때문에 50만보다 크면서 모든 숫자의 경우를 거치는 100만까지를 범위로 잡았다는데 도대체 이게 뭔말이야 😑 뭔말이냐면 내가 이동하고 싶은 채널이 N(0~500,000) 번이라고 했을 때, 0번부터 ++로 이동하는 경우와 999,999번부터 --로 이동하는 경우(누를 수 있는 버튼이 9만 있으면 9밖에 못누르기 때문)를 전부 고려한 것이었다. 가능한 숫자를 하나하나 전부 순회하면서 누를 수 있는 숫자에 해당하는 경우만 조건문 처리를 통해 최소 갭을 계산해줬..
🚩 그래프탐색, BFS thinking queue에다 처음 1인 애들의 좌표를 다 넣고 사방탐색하면서 1로 바꾸고, 바꾼 애들의 좌표를 또 큐에 넣고 이런식으로 해결했다. 그리고 경로 길이를 구해야해서 길이체크할 visited를 만들어줬다. ▶ point 1 처음부터 모두 1이면 0을 출력, 최종적으로 0이 남아있으면 -1을 출력해야 하는데 이걸 어떻게 해야할까 고민하다 파이썬의 all과 any에 대해 알게됐다. 대박사건 all(), any() 함수는 파이썬 빌트인 함수이며 조건 성립 유무에 따라 True / False를 리턴해준다. 인자는 하나만 올 수 있고, 반복가능한 자료형(iterable)이어야한다. 파이썬에서 빈 값, 0, None은 False로 인식한다. All 조건이 전부 True이면 Tru..
🚩 브루트포스, 백트래킹 thinking 1. 파이썬 itertools의 조합 기능을 사용해 만들수 있는 리스트의 경우의 수를 구하고 2. for문을 돌면서 해당 경우의 수의 행만 돌면서 나머지 열의 값을 더함 ex. (1,2,3)의 경우라면 1,2,3행을 돌며 1행일 때는 2,3열의 값, 2행일 때는 1,3열의 값, 3행일 때는 1,2열의 값만 더하면 팀의 능력치를 구할 수 있다. 3. sumA, sumB 구한 다음 abs로 차이 구해서 가장 최소값이 답 ❗ 문제는 (1,2,3)-(4,5,6) / (1,4,5)-(2,3,6) 이런식으로 짝을 이루어야하는데 이걸 어떻게 매칭시키는 것인가였다. 근데 대박인게 itertools로 조합 구하면 아래 그림처럼 알아서 순서대로 조합의 경우를 구해서 매칭이 된다. ..
🚩 자료구조, 문자열, 파싱, 덱 thinking 0 ≤ p ≤ 100,000 , 0 ≤ n ≤ 100,000 이라 리터럴리 연산하면 시간초과 날거 같아서 규칙을 찾아봤다. - R이 연속해서 홀수개면 뒤집고, 짝수개면 걍 그대로 - D는 연속한 개수만큼 삭제 => R 홀짝 체킹할 flag변수 만들고, p연산 돌면서 앞에서부터 삭제할 개수랑 뒤에서부터 삭제할 개수 찾아서 삭제 코드 def sol(p, n): flag = 0 # 짝 delete = [0, 0] # 홀이면 뒤집(뒷 숫자 삭제), 짝이면 stay(앞 숫자 삭제) for s in p: if s == 'R' and flag == 0: flag = 1 elif s == 'R' and flag == 1: flag = 0 elif s == 'D' and..
- 알고리즘
- swea
- 2018 카카오 공채
- 파이썬
- react
- 삼성기출
- merge 에러
- BFS
- Python
- git 미러링
- 20057 마법사 상어와 토네이도
- merge에러
- 삼성코테
- 프로그래머스
- 2579 계단오르기
- 보석쇼핑
- 브루트포스
- dp
- 21609 상어 중학교
- dfs
- 백준
- 기지국설치
- 영어끝말잇기
- 17406 배열돌리기4
- 20056 마법사 상어와 파이어볼
- Total
- Today
- Yesterday