반응형

프로그래머스 73

프로그래머스 : 소수 찾기 - javascript(완전탐색, 소수 판별)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 풀이 아래 두개의 함수를 작성하면 된다  numbers로 순열을 구하는 함수  해당 숫자가 소수인지 확인하는 함수  정답 코드 function solution(numbers) { let answer = new Set() for(let i=1; i el.join('')) let prime = check(format) p..

프로그래머스: [PCCP 기출문제] 2번 퍼즐 게임 챌린지- javascript(이진탐색)

문제 출처 정답 풀이 어제 pccp 풀었을 때 lv1 문제를 무슨 한시간 동안 풀어서 좀 절망적이였는데 그래도 오늘 lv1, lv2는 각각 30분씩 시간이 들었다. 오늘 하루는 조금 나한테 위로가 되는 날이다. 항상 드는 생각이 문제가 복잡하게 느껴져도 단순할 것이다 계속 세뇌를 하며 예제를 보면서 실제로 단순화 해야 한다. 이번 문제는 그렇게 풀었다.  그리고, 문제를 풀고 틀렸어도 당황하지 말고, console.log를 통해 어떤 부분이 틀린건지 유추하면서 고쳐나가면 된다. 사실 그게 진짜 코딩테스트다.  만약 맞았다면, 어떻게 효율성을 더 챙길 수 있을까? 고민해야 한다.  이번 문제는 효율성을 생각해줘야 했다. 아래는 내가 문제 풀기전에 주석처리로 문제를 정리한 부분이다.  //효율성?//숙련도를..

프로그래머스: [PCCP 기출문제] 1번 동영상 재생기 - javascript(단순 구현)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/340213 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 풀이 단순 구현 문제이고, commands 반복문이 끝난 시간에도 오프닝 구간인지 확인해주는 것 정도만 신경써주면 된다. 정답 코드 function solution(video_len, pos, op_start, op_end, commands) { pos = transTime(pos) video_len = transTime(video_len) op_start = tra..

프로그래머스: [PCCP 기출 문제] 석유 시추 - javascript(bfs 효율성)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr정답 풀이 처음 풀이는 효율성에서 틀린 점수를 받았다. 아래 방식으로 풀었는데, 아무래도 checked를 가로 이동할 때마다 초기화하면서, 똑같은 곳을 bfs로 또 탐색 하게 코드를 작성했기 때문이다.  따라서, 미리 주어진 그래프로 석유가 있는 곳을 저장해놨다. 해당 위치는 1번땅이야 ~ 2번땅이야 ~ 3번땅이야 ~ 이것을 dp 그래프로 저장해놨다. - 예를 들어 dp[0][2] = 1 ..

프로그래머스: 블록 이동하기 - javascript(bfs 끝장내기)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/60063 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 풀이 그래프 최단 경로 ? bfs 알고리즘을 사용해야 되는 것은 모두 다 알거다. 그런데 구현하기가 어려웠는데, 그 이유는 함수화 하지 않아서 solution 기본 함수가 복잡해진 탓이라고 생각한다.  또, 회전하는 경우를 가로 => 세로 인 것과 세로 => 가로를 구분해줘야 한다.  또 이미 방문한 위치는 Set 객체를 이용하면 된다. 정답 코드function solution(boa..

프로그래머스: 가사 검색 - javascript(이진탐색, 그리디)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/60060 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 효율성을 생각하지 않는다면, 아래 코드가 간결할 수 있겠다. function solution(words, queries) { let answer = new Array(queries.length).fill(0) queries.forEach((query, idx) => { let q = '^'+ query.replaceAll('?','.') + '$' ..

프로그래머스: 미로 탈출 명령어 - javascript(dfs 그래프, 맨해튼 거리)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 풀이 DFS 알고리즘을 활용해서 미로에서 탈출하는 경로를 찾는 문제. - k번의 이동 - 사전순으로 가장 빠른 경로 반환  1. 맨해튼 거리 계산 - 출발점에서 목표점까지의 맨해튼 거리 계산 - 만약, k이동 횟수가 이 거리보다 작거나, 맨해튼 거리와 k의 홀짝성이 다르면 도달 할 수 없으므로 => impossible  2. dfs - 스택을 사용하여 dfs 구현 - 후입선출방식, ..

프로그래머스: 길 찾기 게임 - javascript(트리)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 풀이 트리를 생성하고, 트리를 탐색하면 되는 문제다.  ### 0. 기존 세팅  문제에서 주어지는 `nodeinfo`를 새로운 배열로 정리 및 정렬을 해야 한다. 기준은, -  노드의 번호는 idx+1 이 된다. -  노드의 x값은 node[0]이 된다. -  노드의 y값은 node[1]이 된다.  정렬은, - y값을 기준으로 내림차순을 한다. (이유: 부모 자식 부터 차례대로 tre..

프로그래머스: 자물쇠와 열쇠 - javascript(단순 구현)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 이런 문제는 시간을 두고 본인이 해결할 때까지 다른 사람이 푼 코드를 보지 않는다면 좋겠다. 어떤 특별한 알고리즘이 필요한 것이 아니라서,, 자기가 끈질기게 구현해보는 연습을 할 수 있는 좋은 문제인 것 같다.  하지만 이 정도의 아이디어는 얻고 혼자 풀면 좋을 것 같은데 아래 그림과 같이 주어진 lock을 가로, 세로 3배씩 확장시킨 그래프로 생각하는 것이다. 그래서 거기서 k..

프로그래머스: 매칭 점수 - 실수 축제 (중괄호랑 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..

반응형