전체 글 23

[프로래머스] 12946번: 하노이의 탑(Java)

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 문제 분석하노이의 탑은 고전적인 재귀 문제로,작은 원판이 위, 큰 원판이 아래에 위치하도록한 기둥의 모든 원판을 다른 기둥으로 옮기는 최소 방법을 구하는 퍼즐이다. 2. 적용할 알고리즘 1️⃣ 재귀 호출 (Recursion)2️⃣ 분할 정복 (Divide & Conquer)문제를 n - 1개를 먼저 옮긴다는 방식으로 쪼개고,이후 최종 목표를 해결하는 방식  3. 핵심 개념 및 규칙1️⃣ 한 번에 하나의 원판만 이동 가능2️⃣ 더 ..

알고리즘 2025.03.27

[프로그래머스] 150368번: 이모티콘 할인행사(Java)

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  1. 문제 분석사용자마다 이모티콘 구매 기준(최소 할인율, 가격)이 주어진다.모든 이모티콘에 대해 할인율을 설정한 뒤,"누가 이모티콘을 사고, 누가 구독을 할지"를 시뮬레이션해서가장 많은 가입자를 만들고, 그 중 매출이 높은 경우를 선택하는 문제다.  2. 적용할 알고리즘✅ 완전탐색 (모든 할인율 조합을 DFS로 탐색)✅ DFS 3. 핵심 개념 및 규칙1️⃣ 이모티콘마다 할인율은 [10, 20, 30, 40] 중 하나→ 이모티콘이 ..

알고리즘 2025.03.25

[프로그래머스] 87390번: n^2 배열 자르기(Java)

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/87390  1. 문제 분석이 문제는 2차원 배열을 직접 생성하지 않고도 필요한 부분만 찾아서 1차원 배열로 만드는 방법을 고민해야 한다.인덱싱을 활용할 것 쉽게 예제(n=3)를 생각보면,1 2 32 2 33 3 3이 배열을 1차원 배열로 변환하면?[1, 2, 3, 2, 2, 3, 3, 3, 3] 규칙을 보면 (i, j) 위치의 값은 max(i, j) + 1그래서 2차원 배열을 만들지 않고도 원하는 인덱스 값을 찾을 수 있다!2. 적용할 알고리즘 1️⃣ 인덱스 계산을 통해 필요한 값만 구한다. 2️⃣ left부터 right까지만 구하기3. 핵심 개념 및 규칙1️⃣ 1차원 배열의 인덱스 → 2..

알고리즘 2025.03.20