분류 전체보기 73

프로그래머스 Lv2 요격 시스템 문제

프로래머스 Lv2 요격 시스템 문제문제를 읽고 난 후의 분석자원을 최소로 사용하여 요격하기맵은 2차원 배열이며 a나라의 미사일은 x축과 평행하게 날아오고, b나라의 방어미사일은 y축에 평행하게 발사방어미사일은 해당 발사지점의 y축에 속한 x축의 모든 미사일을 관통할 수 있으며 한발로 여러 발 제거 가능개구간(s, e)으로 표현되는 미사일은 s,e 좌표에선 미사일을 발사하지 못하므로 방어 불가요격 미사일은 실수 x 축에서도 발사가 가능배열 내 요소의 최대값은 1억이 최대이므로 int는 사용가능길이 또한 5만이 최대이므로 int사용 가능예시 그림을 보니 이미 관통한 미사일 경로는 다른 미사일 경로 관통 시, 같이 관통되는 일이 있으면 안됨해당 문제의 난이도 상승 원인해당 문제를 해결한 방법해당 문제를 해결였..

프로그래머스 Lv2 N-Queen 문제

프로래머스 Lv2 N-Queen 문제문제를 읽고 난 후의 분석가로, 세로 길이가 n(n*n)인 맵이 존재이 맵에 n개의 퀸을 인접하지 않은 상태로 배치해야함퀸은 가로, 세로, 대각선 이동이 가능n은 12 이하n 당 n개의 배치자리를 얻음모든 경우의 수에서 특정 상황만 카운팅? DFS인가해당 문제의 난이도 상승 원인이전 row들에 대한 대각선에서의 퀸 존재확인하는 반복문이 복잡해서 어려움해당 문제를 해결한 방법원래는 대각선들을 한번의 순환문으로 처리하려 했으나, 너무 복잡해지고 코드가 더러워져서 분리해당 문제를 해결였던 과정처음에는 이중 순환문으로 해결하려고 코드 작성 중 해당 문제가 이전에 풀었던 DFS 알고리즘을 사용하는 문제같다는 생각이 들어 DFS 방식으로 해결문제의 핵심DFS 사용하기대각선 상태 ..

프로그래머스 Lv2 두 원 사이의 정수 쌍 문제

프로래머스 Lv2 두 원 사이의 정수 쌍 문제문제를 읽고 난 후의 분석N의 반지름은 길이가 N인 사각형의 길이보다 작고 N-1인 사각형보다는 길이가 길다.r2의 y축에 해당하는 4개의 정수개수를 제외하고 r1의 길이를 가지는 4각형에 속하는 정수를 구한 후 + 4를 해야할 것 같다.한 부분의 정수 분포 개수만 구하고 * 4를 해도 개수가 구해질 것 같다.위의 생각을 정리하면 이 문제는 일종의 팩토리얼을 구하는 문제외 비슷하다고 생각된다 그 이유는 r2의 길이부분은 4개 + 그 외 작은 사각형으로 생각되며 이 '그 외 작은 사각형 부분 중' 대각선을 나타내는 반지름이 r2의 길이보다 짧을 수 있어 또 다시 4개 + 그 외 작은 사각형으로 나눠지고 최종적으론 r1의 사각형이 나오기 때문이다.예시에는 개수가 ..

프로그래머스 Lv2 숫자 블록 문제

프로래머스 Lv2 숫자블록 문제문제를 읽고 난 후의 분석최소 공배수를 이용한 규칙 탐색 + 주어진 범위만 검사하여 메모리 절약해당 문제의 난이도 상승 원인약 10억이라는 번호가 존재내가 문제의 지문을 놓침효율성을 만족하기 위한 코드 구상이 어려웠음해당 문제를 해결한 방법최대 블럭 번호인 10,000,000를 이용한 제한점을 두어 이를 만족할 때만 값을 반환하도록 + 만약 소수라면 1을 반환하도록 기능을 작성해당 문제를 해결였던 과정숫자들의 최소 공배수에 대한 규칙이 있을 것 같단 예상이 들어 1 ~ 200 까지의 각 자리수에 대한 최대 공약수 테이블을 만들어 비교테이블 생성 후 짝수번류는 (해당 짝수 % 2) + (해당 짝수를 10을 몫으로 나눈 후 값) * 5라는 규칙을 가진다는 것을 확인하였고 홀수는..

프로그래머스 Lv2 조이스틱 문제

프로래머스 Lv2 조이스틱 문제문제를 읽고 난 후의 분석조이스틱(4방향)으로 알파벳 이름 완성하기초기화 상태는 세글자면 'AAA', 네글자면 'AAAA'name이 주어질 때 이름에 대하려 조작횟수의 최솟값 구하기가 목표최솟값? 최단거리? 를 구하기 위해 뭘 써야하나일단 조이스틱은 dx, dy를 활용한 방법같고범위 초과 시 처리는 있고뭔가 알파벳을 X 축, 글자위치를 Y로 본다면 이건 DFS 계열 같다해당 문제의 난이도 상승 원인해당 문제를 해결한 방법해당 문제를 해결였던 과정처음엔 BFS로 생각하고 BFS에 필요한 기본 재로코드를 타이핑하고 있었는데 문득 같은 단어를 치려고 해도앞으로 전진하면서 찾는 것보다 뒤로 후진하면서 찾는경우가 더 빠를 수 있다고 생각하여 BFS 가 아닌 , 이분 탐색? 에 가까운..

카테고리 없음 2026.03.23

프로그래머스 Lv2 조이스틱 문제

프로래머스 Lv2 조이스틱 문제문제를 읽고 난 후의 분석조이스틱(4방향)으로 알파벳 이름 완성하기초기화 상태는 세글자면 'AAA', 네글자면 'AAAA'name이 주어질 때 이름에 대하려 조작횟수의 최솟값 구하기가 목표최솟값? 최단거리? 를 구하기 위해 뭘 써야하나일단 조이스틱은 dx, dy를 활용한 방법같고범위 초과 시 처리는 있고뭔가 알파벳을 X 축, 글자위치를 Y로 본다면 이건 DFS 계열 같다해당 문제의 난이도 상승 원인해당 문제를 해결한 방법해당 문제를 해결였던 과정처음엔 BFS로 생각하고 BFS에 필요한 기본 재로코드를 타이핑하고 있었는데 문득 같은 단어를 치려고 해도앞으로 전진하면서 찾는 것보다 뒤로 후진하면서 찾는경우가 더 빠를 수 있다고 생각하여 BFS 가 아닌 , 이분 탐색? 에 가까운..

카테고리 없음 2026.03.23

프로그래머스 Lv2 양궁대회 문제

프로래머스 Lv2 양궁대회 문제문제를 읽고 난 후의 분석라이언은 전 챔피언이고 대회 측은 기왕이면 새 챔피언이 나오는 것을 선호전 챔피언과 도전자가 같은 점수 + 다른 횟수로 과녁을 적중했다면 더 많이 맞힌 쪽에 그 점수가 1번 들어감전 챔피언과 도전자가 같은 점수 + 같은 횟수로 과녁을 적중했다면 도전자에게 그 점수가 1번 들어감만약 최종 점수가 같다면 도전자에게 우승이 돌아감이 문제는 전 챔피언에 대한 것을 결과로 원하므로 지거나 비기면 '-1' 반환점수는 0~10까지 존재하며 각 선수는 n번 화살을 발사info는 10~0까지의 점수를 나타내는 배열이며 각 요소는 해당 위치(점수)에 적중한 횟수를 나타냄길이는 11인덱스는 점수를 의미하며 내림차순만약 가장 큰점수로 이기는 플랜이 여러 개 라면 가장 낮..

프로그래머스 Lv2 혼자 놀기의 달인 문제

프로래머스 Lv2 혼자 놀기의 달인 문제해당 문제의 난이도 상승 원인박스가 위치한 번호와 안의 내용 번호의 매칭이 필요하다는 점1번 그룹의 박스를 고른 후 2번 그룹의 처음 시작 시, 발생하는 경우의 수 관리법이 필요하다는 점해당 문제를 해결한 방법박스 위치를 나타내는 배열 변수를 생성하고 이를 이용해 위치와 내부 값을 추적임의의 박스를 선택하기 때문에 처음 -> 마지막까지 선형 순환하는 방식을 선택하고 그에 따라 발생하는 경우의 수를 처리하는 내부 순환문을 작성1번 그룹에서 나온 박스 수와 2번 그룹에서 나온 박스 수의 곱한 값을 이전에 구했던 최대값과 비교해 나가면서 최종 Max 값을 찾음문제의 핵심박스 번호와 내부 번호를 매칭시키는 방법 찾기1번/2번 그룹의 박스의 곱한 값의 최대값을 구하는 방법 ..

프로그래머스 Lv2 [PCCP 기출문제] 3번 / 충돌위험 찾기 문제

프로래머스 Lv2 충돌위험 찾기 문제해당 문제의 난이도 상승 원인각 로봇들의 시간에 따른 이동위치에 대한 일치성을 검사하는 것해당 문제를 해결한 방법시간(초)를 기준으로 순환문을 생성하여 각 시간에 따른 Int 자료형을 사용하는 위치 테이블을 생성해 이동 시 해당 위치에 +1 하고 해당 위치의 값이 2 이상이면 겹쳐짐으로 판단하여 이것의 개수를 카운팅함처음 방식에서 변경한 방식처음각 로봇을 저장할 자료형을 List로 정하고 작업변경그러나 위의 방법은 루트 요소의 길이가 2인 경우에만 정답이고 그 이상이면 문제가 발생하였음 그래서 루트의 특성인 순서를 지키기 위하여 Queue를 사용해 루트의 우선순위를 지키면서 각 요소의 도착지에 도달 시, 그 뒤에 다른 요소가 있는지 체크하고 요소가 있다면 그 요소의 정..

카테고리 없음 2026.03.23