문제https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이해당 문제는 BFS 알고리즘을 이용해 그래프탐색을 진행하는 문제로써 인접한 모든 노드의 탐색 및 거리 측정을 진행해야 한다. 코드function solution(n, edge) { const visited = Array.from({ length: n + 1 }, () => false); const level = Array.from({ length: n + 1 }, () => 0); con..
코딩 테스트/프로그래머스 코딩 테스트 연습
문제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/64064 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이정규 표현식을 통해 모든 사용자의 아이디 중 불량 사용자들을 색출했다. 불량 사용자의 경우 영어 소문자 혹은 *문자로 구성되어있다. *문자는 모든 영문자가 올 수 있다는 가능성이 있다는 것을 알려주며, *를 제외한 나머지 문자를 이용해 사용자의 아이디를 색출해야한다. 정규 표현식에서 . 문자는 모든 문자가 올 수 있음을 설정하는 문자이며, 이렇게 정규 표현식을 생성했다.const regArr ..

문제https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제는 수학 문제다. 첫 번째 풀이를 진행할 때 이중 for문을 이용해 x, y 좌표별 범위 내에 있는지 검증하며 풀이를 답을 도출하는 접근법으로 풀이했는데, 제한 조건을 보면 입력이 백만까지 이므로 시간 초과 에러가 발생했다. 어찌 보면 당연한 결과였다. 그래서 수학의 원의 방정식을 이용했다.원의 방정식을 이용해 x좌표별 범위에 들어올 수 있는 y좌표의 최대값과 최소값을 구했다. 문제..
문제https://school.programmers.co.kr/learn/courses/30/lessons/176962# 풀이이 문제는 구현 문제이며 필자는 과제를 담고 있는 배열을 큐를 사용해 사용했고, 남아있는 과제에 스택을 적용해 사용했다. 큐를 사용해 진행중인 과제를 구현해 순서에 맞게 진행되는 과제의 흐름을 직관적으로 활용할 수 있으며, 남아있는 과제에 스택을 적용해 나중에 들어온 과제부터 수행한다는 제한 사항을 충족할 수 있다. 첫번째 풀이는 1시간 정도 걸렸는데, 6번과 9번 케이스에서 계속 틀려서 30분은 고민을 했다. // stack을 이용해 멈춘 과제 저장 후 하나씩 빼내면서 잔업 진행function solution(plans) { const newPlans = plans.map(..