전체 글(62)
-
[Programmers_Python] 동영상 재생기
문제https://school.programmers.co.kr/learn/courses/30/lessons/340213 사용 알고리즘구현 풀이풀이방식commands를 순회하며 오프닝 구간 여부 확인과 행동 실행을 진행한다. - 오프닝 구간 여부 확인- 행동 실행(전, 후 이동)행동 실행 후 전으로 이동 시 0과 비교, 후로 이동 시 동영상 총 길이와 비교하여 값 세팅 고려사항시간을 문자열 상태로 계산하기는 어렵기 때문에 모든 시간을 초 단위(int) 로 변환하여 처리하였다. - 이때, 처음에는 인덱스 방식을 사용했지만,이후 split 처리가 깔끔하고 길이에 직접 의존하지 않아 이 방식을 사용하였다. 오프닝은 0부터 시작하지 않는다.- 때문에 오프닝 전이라면 오프닝을 건너뛰지 말아야한다.- 각 동작을 시작..
2026.07.31 -
[Programmers_Python, Java] 붕대 감기
문제https://school.programmers.co.kr/learn/courses/30/lessons/250137사용 알고리즘구현, 시뮬레이션 풀이풀이 방식attacks를 기준으로 돌며 현재 체력과 공격받은 후 상태를 확인한다. - 현재 체력이전 공격 시간과 현재 공격 시간 사이의 gap을 구한 뒤,해당 시간 동안의 기본 회복량과 연속 성공 보너스를 한 번에 계산하여 최대 체력과 비교 - 공격받은 후 상태계산 된 현재 체력에서 공격 피해량 계산 후 0이하인지 확인 고려사항전체 시간을 1초씩 반복하면 공격이 없는 시간까지 모두 확인해야 한다.따라서 실제 상태가 변하는 시점인 attacks만 순회하도록 구현하였다. 연속 회복 보너스는 gap // bandage[0]을 통해 해당 시간 동안 몇 번 완성되..
2026.07.29 -
[Python_Greedy]BOJ_24337. 가희와 탑
문제https://www.acmicpc.net/problem/24337사용 알고리즘Greedy(탐욕 알고리즘) 풀이고려사항1. 불가능한 조건2. 사전 순으로 가장 앞서는 수3. 왼쪽 건물이 가장 높은 경우 후기1. 이 문제의 keypoint는 예외를 찾는 것이다.처음에 주어진 예제로만 풀었을 때, 사전 순으로 가장 앞서는 수에만 포커스를 두어b-1개만큼 담비(오른쪽)에서 보이는 순서대로 내림차순으로 갯수를 채워넣고,max(a, b)의 값을 채운 후a-1개만큼 오름차순으로 채워 넣고,나머지 수는 1로 채워 답을 완성했다. 2. 하지만, a==1 즉, 왼쪽 건물이 가장 높은 경우 이 방식이 성립되지 않는다.즉, 6 1 3의 경우 답으로 3 1 1 1 2 1이 출력되어야 한다. 3. 때문에 방향을 두 갈래로 ..
2026.02.17 -
[예외 대신 로그로 흐름 제어] 콘솔 출력, 예외 발생, 로그 경고
문제 상황프로젝트를 진행하며 로그는 남기고 싶지만, 굳이 예외를 던져서 트랜잭션을 깨뜨릴 정도는 아닌 경우가 발생하였다.이럴 땐 단순히 로그만 남기고 흐름을 종료하면 충분하다.이번 글에서는 이럴 때 사용할 수 있는 세 가지 접근법을 정리하였다.방법 1: System.out.println() 으로 처리 후 종료if (isAlreadyIn) { System.out.println("이미 사용 중입니다."); return 0; }장점가장 간단. 예외도 없고 별도 설정도 필요 없음.콘솔에 메시지 한 줄만 찍히고 종료.단점운영 로그에 남지 않음.로그 레벨, 날짜, 스택트레이스 같은 정보가 없음.서버 환경(컨테이너/배포 환경)에 따라 콘솔 로그가 유실될 수도 있음.사용하기 좋은 환경로컬 테스트용, 임시 디버깅용으로만..
2025.11.06 -
[Python_DP] BOJ_2169. 로봇 조종하기
문제https://www.acmicpc.net/problem/2169 사용 알고리즘DP 풀이고려사항1. 위쪽으로 이동불가 / 좌, 우, 아래로만 가능2. 이미 간 곳은 다시 탐방 불가 후기1. 이 문제의 keypoint는 왼쪽, 오른쪽 각각 탐색을 진행하고 그 중 큰 값을 찾는 것이다.1_1. 우선 위에서 내려온 값과 탐색 방향의 전 값을 비교하여 큰 값을 설정 한 후(temp)1_2. 해당 줄을 모두 확인한 후1_3. 각각의 방향 탐색 값 중 큰 값을 설정한다.(dp) [코드 흐름]1. 우선 첫 줄은 무조건 (1, 1) (리스트의 인덱스로는 [0][0])부터 시작이기 때문에 오른쪽 탐색으로 값을 채워준다.2. 이후 다음줄부터는 우선 해당 방향의 첫 칸은 위에서 내려오는 것 밖에 없기 때문에 해당 값을 ..
2025.10.06 -
[Programmers_Python] 비밀 코드 해독_2025 프로그래머스 코드챌린지 1차 예선
문제https://school.programmers.co.kr/learn/courses/30/lessons/388352 사용 알고리즘브루트포스(완전탐색), combinations(조합) 풀이고려사항1. 사용하지 않는 숫자 제외2. 사용하는 숫자들로 만든 조합 만들기3. 해당 조합이 테스트 케이스를 모두 통과하는지 후기1. 이 문제는 완전 탐색으로 모든 조합을 확인하는 것이다.제한 사항이 아래와 같기 때문에- 10 ≤ n ≤ 30- 1 ≤ (q의 길이 = m) ≤ 10- ans의 길이 = m최악의 조건으로 (n = 30, m = 10)모든 조합을 전부 검사해도 30C5 * 10으로 약 1.4×10^6으로해당문제에서는 충분히 계산이 가능하다고 판단하였다. 2. 하지만, 굳이 가능하다고 최악의 경우의 수를 모..
2025.10.05