분류 전체보기(196)
-
Level 2️⃣ - 숫자 변환하기
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀문제 해석 사용할 수 있는 연산은 세가지이다. - X에 n을 더한다. - X에 2를 곱한다. - X에 3을 곱한다. 따라서 다음과 같은 그래프 그림으로 표현할 수 있다. 따라서 BFS를 구현해서 최단거리를 구하려고 시도했다. function solution(x, y, n) { let visited = Array.from({length: 1_000_001}).fill(0); function bf..
2024.04.08 -
DP - 최대 부분 증가수열
최대 부분 증가수열 N개의 자연수로 이루어진 수열이 주어졌을 때, 그 중에서 가장 길게 증가하는(작은 수에서 큰 수로) 원소들의 집합을 찾는 프로그램을 작성하라. 예를 들어, 원소가 2, 7, 5, 8, 6, 4, 7, 12, 3 이면 가장 길게 증가하도록 원소들을 차례대로 뽑아내면 2, 5, 6, 7, 12를 뽑아내어 길 이가 5인 최대 부분 증가수열을 만들 수 있다. ▣ 입력설명 첫째 줄은 입력되는 데이터의 수 N(1≤N≤1,000, 자연수)를 의미하고, 둘째 줄은 N개의 입력데이터들이 주어진다. ▣ 출력설명 첫 번째 줄에 부분증가수열의 최대 길이를 출력한다. ▣ 입력예제 1 8 5 3 7 8 6 2 9 4 ▣ 출력예제 1 4 🚀문제 해석 2, 7, 5, 8, 6, 4, 7, 12, 3 이 주어졌을 ..
2024.04.08 -
Level 2️⃣ - 파일명 정렬
https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀문제 해석 먼저 파일명을 HEAD, NUMBER 파트로 나눈다. foo9.txt ➡ HEAD : foo, NUMBER : 9 foo010bar020.zip ➡ HEAD : foo, NUMBER : 010 사실 TAIL이라는 파트도 있지만 정렬할 때는 필요가 없기 때문에 구하지 않는다. 그리고 각각의 파일을 정렬을 하는데 HEAD를 기준으로 정렬을 하고 만약 HEAD가 같다면 NUMBER를 기준으..
2024.04.07 -
Level 2️⃣ - 땅따먹기와 동적 프로그래밍
동적 계획법이란 특정 범위까지의 값을 구하기 위해 그것과 다른 범위까지의 값을 이용하여 효율적으로 값을 구하는 알고리즘 설계 기법입니다. 엄밀히 말해 동적 계획법은 구체적인 알고리즘이라기 보다는 문제를 해결하는 패러다임에 가깝습니다. 어떤 문제를 해결하기 위해 그 문제를 더 작은 문제의 연장선으로 생각하고, 과거에 구했던 해를 활용하는 방식의 알고리즘 입니다. 복잡한 문제를 간단한 여러개의 문제로 나누어 푼다는 것이 DP의 개념인데 피보나치 수열이 대표적인 예시로 등장을 한다. 피보나치 수열 흔히 재귀함수를 사용해 피보나치 수열을 구현할 수 있다. function fibo(n) { if (n === 1) return 1; if (n === 2) return 1; return fibo(n - 1) + fi..
2024.04.07 -
Level 2️⃣ - 롤케이크 자르기
https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀문제 해석 올려진 토핑의 갯수와 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하다고 생각한다. 즉, 1 1 3 4 | 2 3 4 이렇게 나누어도 각 조각의 토핑의 가짓수는 각각 3개씩이므로 공평하다고 생각하는 것이다. 토핑의 가짓수만 확인한다는 것은 중복을 생각하지 않고 오직 토핑의 종류만 생각한다는 것이다. 먼저 입력값이 최악의 경우 100만이기 때문에 이중 for문으로 접근할 시..
2024.04.07 -
Level 2️⃣ - 방문길이
https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀문제 해석 캐릭터가 처음 걸어 본 길의 길이를 구하는 문제이다. 한번 갔던 길은 다시 중복해서 구하면 안된다. 때문에 Set 자료형을 고려할 수 있다. 이때 또 주의할 점이 있다. A ➡ B로 가는 경로랑 B ➡ A로 반대로 가는 경로도 중복하면 안된다. 새로운 길이 아니기 때문이다. 이 부분을 고려하지 않아 처음 구현할 때 오류가 나왔다. 코드 Set에 A➡B로 가는 것과 B➡A로 가는 것을 ..
2024.04.07