문제https://school.programmers.co.kr/learn/courses/30/lessons/ 풀이해당 문제는 BFS를 이용한 다익스트라다 문제이며, 처음 문제를 풀때는 주어지는 sources별로 마지막 도착지인 destination까지의 거리를 측정했었다. 하지만 이렇게 풀게 되면 시간 초과가 발생한다.function solution(n, roads, sources, destination) { const answer = []; const road = Array.from({length: n + 1}, () => []); const level = Array.from({length: n + 1}, () => Infinity); for(let i = 0; i fal..
프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/161988# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제를 보고 펄스 수열이라는 말이 눈에 거슬렸다. -1과 1을 번갈아가며 곱셈되는 동작을.... 펄스 동작이 1부터 곱해지냐 아니면 -1부터 곱해지냐는 정해져 있는 것이다. 첫번째 풀이는 전부 1 혹은 -1 씩 번갈아 가며 요소들에 곱해준 배열을 구한 뒤 누적합을 구했었지만, 이렇게 풀이한 경우 부분 수열의 합을 구할 수 없기에 통과하지 못했다.function solution(sequ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제는 이분탐색으로 풀이해야한다. 건너야 하는 돌들을 탐색해야 하나 생각했지만, 사실 건널 수 있는 인원수를 이분탐색 해야한다. 인원수는 최소 1명, 최대 2억명이다. 이유는 바위의 내구성을 나타내는 숫자의 범위는 1 ~ 2억이기 때문이다. 최소값이 최대값 보다 적을 때까지 탐색을 진행한다. 이분탐색을 진행하며 중간값을 각 바위의 숫자에 빼준다. 뺀 결과값이 0이하이면 중간값의 인원수만큼..
문제https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 원래는 투포인터 알고리즘을 이용해 풀려했지만 도저히 방법이 생각나지 않아 참고를 좀 해봤다.풀이 1우선 Map 객체를 이용한 투포인터 접근법을 이용한 풀이다. Map 객체는 중복처리가 가능하며 각 보석이 나온 최종 인덱스를 저장하며 사용한다.map.delete(gems[i]);map.set(gems[i], i); delete를 하는 이유는 이미 있는 보석의 경우 같은 보석 중 나중에 나..
문제https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이정규 표현식을 통해 모든 사용자의 아이디 중 불량 사용자들을 색출했다. 불량 사용자의 경우 영어 소문자 혹은 *문자로 구성되어있다. *문자는 모든 영문자가 올 수 있다는 가능성이 있다는 것을 알려주며, *를 제외한 나머지 문자를 이용해 사용자의 아이디를 색출해야한다. 정규 표현식에서 . 문자는 모든 문자가 올 수 있음을 설정하는 문자이며, 이렇게 정규 표현식을 생성했다.const regArr ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제는 수학 문제다. 첫 번째 풀이를 진행할 때 이중 for문을 이용해 x, y 좌표별 범위 내에 있는지 검증하며 풀이를 답을 도출하는 접근법으로 풀이했는데, 제한 조건을 보면 입력이 백만까지 이므로 시간 초과 에러가 발생했다. 어찌 보면 당연한 결과였다. 그래서 수학의 원의 방정식을 이용했다.원의 방정식을 이용해 x좌표별 범위에 들어올 수 있는 y좌표의 최대값과 최소값을 구했다. 문제..