본문 바로가기

전체 글

(435)
[프로그래머스] 등굣길 코드 힌트웅덩이 처리:웅덩이(puddles)로 지정된 셀은 경로 계산에서 제외됩니다.이 셀들은 -1로 표시하여, 이후 경로 계산에서 무시하도록 처리합니다.초기화:첫 번째 행과 첫 번째 열의 값을 초기화합니다.만약 웅덩이로 인해 막혀있는 경우 해당 경로는 막히며, 그렇지 않은 경우 1로 설정합니다.이는 초기 경로 설정을 위한 작업입니다.동적 프로그래밍:나머지 셀들은 동적 프로그래밍을 이용하여 계산합니다.각 셀의 경로 수는 왼쪽과 위쪽에서 올 수 있는 경로의 수를 합산하여 계산합니다.이 과정에서 현재 셀이 웅덩이인지 확인하고, 웅덩이가 아닌 경우에만 경로 수를 누적합니다.결과 반환:최종적으로 도착 지점 (m-1, n-1)의 셀에 저장된 경로 수를 반환합니다.결과는 매우 큰 수를 다룰 수 있으므로, 1,000..
[알고리즘] 진법 변환 (Java) 진법이란?진법은 숫자를 표현하는 체계로, 특정 숫자를 구성하는 각 자릿수의 가치를 나타내는 방법입니다. 우리가 일상적으로 사용하는 10진법은 0부터 9까지의 숫자를 사용하며, 각 자리의 위치에 따라 값이 10의 제곱으로 증가합니다.예를 들어, 숫자 2901을 생각해보면:1000의 자리: 2 × 1000 = 2000100의 자리: 9 × 100 = 90010의 자리: 0 × 10 = 01의 자리: 1 × 1 = 1이들을 모두 더하면 2901이 됩니다. 다른 진법도 비슷한 방식으로 숫자의 값을 계산합니다.10진법 -> 2진법 변환2진법은 0과 1 두 개의 숫자만을 사용합니다. 10진수를 2진수로 변환하는 방법은 매우 간단합니다: 주어진 수를 2로 나누고 나머지를 기록한 다음, 이 나머지를 역순으로 읽으면 됩..
[수학] 진법 변환 진법이란?진법이란 숫자를 표현하는 체계로, 위치값 기수법(Positional System)을 사용하는 수의 표현 방식입니다. 기수법은 수를 눈으로 볼 수 있는 표현 방식이며, 위치값 기수법은 숫자의 위치와 계수를 이용하여 수를 나타내는 방법입니다.예를 들어, 우리가 일상적으로 사용하는 숫자 표현은 10진법으로, 0부터 9까지의 숫자를 사용합니다. 위치값 기수법에서 각 자리수는 해당 위치에 따라 다른 가중치를 갖고, 그 위치의 값에 계수를 곱한 값을 모두 더한 것이 숫자의 값이 됩니다.10진법 구조10진법에서는 각 자릿수의 이름이 1의 자리, 10의 자리, 100의 자리...로 정해져 있으며, 각 자리의 값을 구하는 방법은 다음과 같습니다:2901을 예시로 들면:1000의 자리: 2 * 1000 = 200..
[프로그래머스] [PCCP 기출문제] 1번 / 붕대 감기 코드 힌트턴제 게임:게임은 턴제로 진행되며, 몬스터가 공격하는 턴에는 회복을 할 수 없습니다.반면, 공격이 없는 준비 턴에는 체력을 회복할 수 있습니다.기본 체력 회복:매 턴마다 기본 회복량이 적용됩니다.공격이 발생하기 전까지 회복은 계속되며, 이로 인해 체력이 점진적으로 증가합니다.추가 회복:일정 시간마다 추가적인 회복이 발생합니다.이 회복은 주기적으로 일어나며, 기본 회복과 함께 체력을 추가로 회복시킬 수 있습니다.공격 처리:몬스터의 공격이 발생하면 현재 체력에서 공격 데미지만큼 감소합니다.공격 후 회복 주기가 초기화되므로, 다음 공격까지 체력을 최대한 회복하는 것이 중요합니다.게임 종료 조건:체력이 0 이하로 떨어지면 즉시 게임이 종료됩니다.모든 공격을 견뎌낸 후 남은 체력이 게임의 최종 결과로 반..
[프로그래머스] N으로 표현 코드 힌트문제 개요:주어진 숫자 N을 최대 8번까지 사용하여 특정 숫자 number를 만들 수 있는 최소 사용 횟수를 계산합니다.덧셈, 뺄셈, 곱셈, 나눗셈과 같은 연산을 반복적으로 수행하며 최적의 해를 찾습니다.초기화:N을 사용하여 만들 수 있는 모든 숫자를 HashMap에 초기화하고, 각 숫자를 만들기 위해 필요한 최소 사용 횟수를 저장합니다.재귀적 연산:N을 사용하여 가능한 모든 연산을 수행하고, 결과를 HashMap에 기록합니다.이미 계산된 숫자의 경우 더 적은 횟수로 동일한 숫자를 만들 수 있는지 확인하여 업데이트합니다.8번 이상의 연산은 의미가 없으므로 재귀 깊이를 제한합니다.최종 결과:HashMap에서 목표 숫자 number에 대한 최소 연산 횟수를 찾아 반환합니다.만약 목표 숫자를 만들 수..
[프로그래머스] 주차 요금 계산 코드 힌트기록 관리:각 차량의 입차 및 출차 시간을 관리하여, 차량이 얼마나 오랫동안 주차했는지를 계산합니다.출차 기록이 없는 차량은 마지막 시간인 23:59에 자동으로 출차 처리됩니다.요금 계산:차량이 기본 시간 이하로 주차한 경우, 기본 요금만 부과됩니다.기본 시간을 초과한 경우, 추가 시간에 대해 단위 요금을 적용하여 최종 요금을 계산합니다.추가 시간 계산 시, (현재 시간 - 주차 시간 - 기본 주차 시간) / 추가 시간 단위가 소수점으로 나누어떨어지지 않으면 올림 처리를 해야 합니다.입출차 처리:차량이 입차할 때는 해당 차량의 입차 시간을 기록합니다.차량이 출차할 때는 현재 시간과 입차 시간의 차이를 이용해 총 주차 시간을 계산하고 기록합니다.출차가 완료된 후, 차량의 입차 기록은 삭제됩니다.최..
[프로그래머스] 스킬트리 코드 힌트스킬 순서 이해:주어진 skill 문자열은 스킬의 순서를 정의하며, 이 순서대로 스킬을 배워야만 합니다.예를 들어, skill이 "CBA"라면, 스킬 트리에서 C가 먼저, B가 그다음, A가 마지막으로 와야 합니다.필수 스킬 확인:각 스킬 트리(skillTrees)에 대해 필수 스킬들이 올바른 순서로 나열되어 있는지 확인합니다.skill.indexOf(currentSkill)로 현재 스킬이 필수 스킬 목록에 있는지 확인합니다. 만약 포함되지 않았다면 무시합니다.순서 확인:만약 필수 스킬이 올바른 순서로 나타나지 않았다면, 해당 스킬 트리는 유효하지 않다고 판단합니다.스킬 트리의 유효성을 판단한 후, 유효한 스킬 트리의 개수를 증가시킵니다.결과 반환:모든 스킬 트리를 확인한 후, 유효한 스킬 트리..
[SQLD] 집합연산자 SQL 집합 연산자: UNION, UNION ALL, INTERSECT, MINUS/EXCEPTSQL에서는 집합 연산자를 사용하여 두 개 이상의 테이블에서 데이터를 결합하거나 비교할 수 있습니다. 이 연산자들은 각각 합집합, 교집합, 차집합의 개념을 기반으로 데이터를 처리합니다.  UNION ALL특징: 두 테이블의 중복된 레코드를 포함하여 결합합니다.장점: 중복된 데이터도 모두 유지하기 때문에 성능이 UNION보다 좋습니다. 데이터를 단순히 합치는 용도로 사용됩니다.예시: A : {1, 2, 3, 4}, B : {3, 4, 5, 6}A UNION ALL B => {1, 2, 3, 3, 4, 4, 5, 6}UNION 특징: 중복된 레코드는 한 번만 포함하여 결합합니다. 단점: 중복 제거를 위해 추가적인 ..