[프로그래머스] 기사단원의 무기 (JS)
·
SOLVED.
기사단원의 무기: 약수 구하는 최적의 알고리즘 이 문제는 기사들이 자신의 번호에 해당하는 약수의 개수만큼의 공격력을 가진 무기를 구매하는 문제입니다.또한, 특정한 제한 수치 이상의 공격력을 가지게 되는 기사는 대체 공격력을 가진 무기로 변경해서 구매해야합니다. 즉! 각 기사의 무기 공격력을 구하고, 이를 모두 합산하여 무기 제작에 필요한 철의 총 무게를 구하는 것이 답입니다. 1. 문제 해결을 위한 주요 단계약수 개수 계산: 각 기사 번호의 약수를 구하는 방법을 이용해, 각 번호에 해당하는 약수의 개수를 구합니다.제한 조건 처리: 약수의 개수가 주어진 제한 수치보다 큰 경우, 대체 공격력을 적용합니다.합산: 모든 기사의 공격력(즉, 약수의 개수 또는 대체 공격력)을 합산하여 최종 결과를 반환합니다. 2...
[프로그래머스] 문자열 나누기 (JS)
·
SOLVED.
문자열 나누기 문제: 규칙에 따라 문자열을 분해하는 방법 이 문제는 문자열을 주어진 규칙에 따라 여러 부분으로 분해하고, 분해된 문자열의 개수를 구하는 문제이다.  문자열을 첫 글자를 기준으로 나누고 그에 따라 조건이 충족되는 시점마다 분리하는 과정을 반복하여 최종적으로 분해된 문자열의 개수를 구하기만 하면 된다.   1. 문제 정의첫 글자를 읽고, 이 글자를 x라고 정의한다. 문자열을 왼쪽에서 오른쪽으로 읽어나가면서 x의 개수와 x가 아닌 다른 문자의 개수를 각각 센다두 개수가 같아지는 순간까지 읽은 부분을 하나의 문자열로 분리한다나머지 문자열에 대해 동일한 과정을 반복합니다. 남은 문자열이 없으면 종료한다만약 문자열을 다 읽었는데도 두 개수가 같지 않다면, 현재까지 읽은 부분을 하나의 문자열로 처리하..
[프로그래머스 Level 1] 과일 장수 (JS)
·
SOLVED.
과일 장수의 최대 이익 계산: 점수에 따라 사과 상자 구성하기 이 문제는 주어진 조건에 따라 사과 상자를 구성하고, 최대 이익을 계산하는 문제입니다.사과는 상태에 따라 1점부터 k점까지 점수가 매겨져 있으며, 한 상자에 m개의 사과를 담습니다. 상자에 담긴 사과 중 가장 낮은 점수를 기준으로 상자 가격이 결정되며, 가능한 한 최대 이익을 얻는 것이 목표입니다.  1. 문제 정의 사과는 1점에서 k점까지 분류되며, 사과 한 상자의 가격은 그 상자에 담긴 사과 중 가장 낮은 점수에 따라 정해집니다. 사과가 주어졌을 때, 다음 조건을 만족하는 상자를 만들어 최대 이익을 계산하는 것이 이번 문제의 핵심입니다한 상자에는 정확히 m개의 사과를 담습니다.상자의 가격은 최저 사과 점수 * m으로 계산됩니다.남는 사과는..
[프로그래머스 Level 2] 방문 길이 (JS)
·
SOLVED.
방문길이; 좌표 평면에서 처음 걸어본 길의 길이 구하기  이 문제는 좌표 평면에서 게임 캐릭터가 명령에 따라 이동하는 경로를 추적하고, 처음으로 걸어본 길의 길이를 계산하는 문제이다. 캐릭터는 U, D, R, L 명령어로 이동하며, 경계를 벗어나는 명령은 무시해야한다.그리고 그 과정에서 중복된 길을 제외하고, 처음으로 지나간 길을 리턴해야한다. 1. 문제 정의 캐릭터는 좌표평면에서 (-5, -5)와 (5, 5)로 이루어진 제한된 영역 안에서 이동하며, 주어진 명령어에 따라 움직인다.U: 위쪽으로 한 칸 이동D: 아래쪽으로 한 칸 이동R: 오른쪽으로 한 칸 이동L: 왼쪽으로 한 칸 이동캐릭터는 (0, 0)에서 시작하고, 이동 경로를 추적하여 처음 지나간 길의 길이를 계산한다.단! 이미 지나온 길이라면 카운..
[프로그래머스 Level 3] 입국심사 (JS)
·
SOLVED.
입국심사 문제 해결하기: 이분 탐색을 활용한 최적화    입국심사를 기다리는 많은 사람들이 있을 때, 각 심사대마다 심사를 진행하는 데 걸리는 시간이 다를 수 있다.이러한 상황에서 모든 사람이 심사를 받는 데 걸리는 시간을 최소화하려면 어떻게 해야 할까?이 문제는 효율적인 탐색 방법인 이분 탐색을 이용해 해결할 수 있다.1. 문제 정의입국심사를 기다리는 사람 수 n명과 각 심사관이 한 명을 심사하는 데 걸리는 시간이 담긴 배열 times가 주어진다. 모든 사람들이 심사를 완료하는 데 걸리는 최소 시간을 구하는 것이 목표이다.제한사항:심사 인원: 1명 이상 1,000,000,000명 이하심사 시간: 1분 이상 1,000,000,000분 이하심사관 수: 1명 이상 100,000명 이하(+ 이렇게 천문학적인 ..
[프로그래머스] 덧칠하기 (JS)
·
SOLVED.
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 해석문제는 벽에 페인트를 다시 칠해야 하는 구역들이 주어졌을 때, 최소한의 횟수로 페인트칠을 하는 방법을 찾는 것이다.벽의 길이는 `n` 미터이며, 각 구역은 1미터씩 나누어져 있고, 롤러의 길이는 `m` 미터이다.페인트칠을 할 수 있는 최소 횟수를 구해야 한다. 접근 방법1. 페인트칠이 필요한 구역 파악하기: 주어진 `section` 배열은 페인트칠이 필요한 구역의 번호를 담고 있다. 이 배열의 각 요소는 구역 번호를 나타낸다.  2. 롤러의 범위 확인:롤러는 한 번에 연속된 `m`미터를 칠할 ..
[프로그래머스] 추억 점수 (JS)
·
SOLVED.
1. 문제 분석  문제 설명각 사진마다 포함된 인물의 그리움 점수를 합산하여 사진의 추억 점수를 계산합니다. 사진별로 포함된 인물과 각 인물의 그리움 점수가 주어지며, 각 사진의 추억 점수를 계산하여 배열에 담아 반환합니다.제약사항name의 길이와 yearning의 길이는 같고, 3 이상 100 이하photo의 길이는 3 이상 100 이하이며, photo[i]의 길이는 3 이상 100 이하 2. 해결 방법 1. 각 사진을 순회하며 사진의 추억 점수를 계산한다. (reduce 메서드 사용) 2. 하나의 사진에 포함된 인물들을 순회하며 추억 점수를 계산한다.  (reduce 메서드 사용) 3. 사진에 있는 인물이 그리움 목록에 있는지 찾는다 (findIndex 사용)4. 그리움 목록에 있다면 3번에서 찾은 ..
[프로그래머스] 공원 산책 (JS)
·
SOLVED.
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 분석 문제 설명 로봇 강아지가 주어진 명령에 따라 직사각형 공원에서 산책을 합니다. 공원은 'O' (이동 가능), 'X' (장애물), 'S' (시작 지점)으로 구성된 격자 형태입니다. 로봇 강아지는 주어진 명령을 순서대로 수행하며, 각 명령은 방향 ('N', 'S', 'E', 'W')과 거리로 구성됩니다. 명령을 수행하기 전에, 로봇 강아지는 다음을 확인합니다:이동하려는 방향이 공원을 벗어나는지.이동 경로에 장애물이 있는지.이 두 조건 중 하나라도 충족하면 해당 명령은 무시되고, 다음 명령으로 넘어갑니..
[BOJ/백준] 10773번 제로 (c++)
·
SOLVED.
문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할..