반응형

알고리즘 문제 풀기/실수축제 6

백준: 인구 이동 - 실수 축제 (split, i 사용, queue 초기 값 설정, checked )

실수1. split(' ') 작성 안함.백준에서는 치명적인 실수였다.  실수2. 변수의 재사용 (x,y, i, d) 진짜 이런 실수는 하면 안된다. 매개변수를 i,j 로 받아놓고, 4가지 방향으로 뻗어줄 때 변수를 i로 작성했었다.  이제 매개변수로 받는 값은 x,y로 해야한다. 또 방향 전환 하는 변수는 d로 설정하자. 이래야 다음에는 실수를 하지 않을 것 같다.  실수3. queue의 초기값에 대하여queue의 초기값에 대하여 설정해야 할 것들 checked  나 arr에 push 하기 이런건 해당 부분에서 처리해주자. 실수4. checked - checked를 true로 설정해야 한다. 이걸 계속 false 로 했었음;;

프로그래머스: 미로 탈출 명령어 - 실수 축제 (그래프 탐색에서 DFS와 BFS의 사용 )

아래 세가지 이유에 대해 알아보자.  - 그래프 탐색에서 DFS와 BFS 차이점- DFS: 스택, BFS:큐를 사용하는 이유 - 각 기법을 언제 사용하는지  ## DFS와 스택 dfs는 그래프 탐색 시 "한 방향으로 끝까지 탐색하고, 더이상 갈 곳이 없으면 되돌아와서 다른 경로를 탐색하는" 방법이다.이 방법은 재귀적인 탐색을 요구한다. ### 스택을 사용하는 이유 - LIFO(Last In First Out) : 스택은 마지막에 삽입된 요소를 가장 먼저 꺼내는 자료구조다. dfs에서는 가장 최근에 발견된 노드를 먼저 탐색해야 하기 때문에, 노드를 탐색하면서 경로를 쌓아두었다가 더이상 갈 곳이 없을 때 되돌아가는데 적합하다.   dfs에서 A 에서 출발해서 E를 찾는 과정을 살펴보자. A에서 출발하여 B로..

프로그래머스: 미로 탈출 명령어 - 실수 축제 (switch 오타)

문제 코드  에러 발생 메시지  문제 발생 이유 switch 문을 오랜만에 써서 내가 문법을 잘못 알았나? 하는 두려움에 오타가 있는지는 확인하지 않았다. 보니 오타가 있다. 그리고 생각해봐라. 문법이 문제라면 return 'l' 부분이 아니라 return 'd' 부분부터 에러가 났겠지 !!  해결코드

프로그래머스: 순위 검색 - 실수 축제 (map 객체에 값 추가하기, replace)

문제 코드 for(let candi of candi_key){ if(!map.has(candi)) map.set(candi, []) let arr = map.get(candi).push(score) //틀린 부분 map.set(candi, arr) } 틀린 이유 map.get(candi).push(score)가 배열의 'push' 메서드인데, 이 메서드는 호출한 배열의 길이를 반환한다. 즉, arr에는 배열이 아니라 score가 추가된 후 배열의 길이가 할당된다. 따라서, map.set(candi, arr) 를 할 필요가 없다. 그냥 push 메서드로 배열에 값을 추가하면 된다. 왜냐하면 배열은 이미 참조로 연결되어 있으므로 map에..

프로그래머스: 매칭 점수 - 실수 축제 (중괄호랑 return)

아래와 같이 작성했을 때, idx를 찾지 못한 것을 발견했다. let urlIdx = pageArr.findIndex((p) => { p.match(//gi)}) 이유) - 화살표 함수가 중괄호로 감싸져 있기 때문 - 중괄호를 사용하면 명시적으로 `return` 키워드를 사용하지 않는 한, 함수는 'undefined'를 반환한다. - 이 경우, p.match()이 부분의 결과가 반환되지 않으므로, findIndex는 항상 -1를 받고 -1를 반환한다. let urlIdx = pageArr.findIndex((p) => { return p.match(/  그래서 return 을 명시적으로 추가해줘야 한다.  혹은  중괄호를 쓰지 않는 방법이 있다.  let urlIdx = pageArr.fin..

프로그래머스 : 표 병합의 "실수축제" - javascript (배열 객체 참조, 타입비교)

내가 왜 그동안 코테 시험중에 "어? 이게 왜 에러가 나지?" "왜 작동을 안하지?"의문이 들었던 이유를 알게됐다. (네이버 부캠을 통해...)  내가 문제를 푸는동안 js 틀린 문법을 썼었던 것이다. 교묘 ~ 해서 나 스스로도 모르게...  아이러니하게도 "내가 쓰는 틀린 문법을 뭐가 있을까?" 알려고 하면, 코테 준비를 하는 과정에서 내가 끈질기게 해당 문제를 몇시간이고 풀어야 한다. 그 속에서 마주하는 에러들... 그 에러들을 해결하면서  js의 문법을 자세히 알게된다.  오늘은 해당 문제를 풀면서 실수 축제를 정리해보자. 목차는 이렇다.  01. 배열의 객체참조 02. Set 객체에 대해서 03. number 타입과 string 타입에 비교에 대해서 04. 배열의 요소 접근법  01. 배열의 객체..

반응형