0. 문제주유소 / 실3 / 13305 / greedyhttps://www.acmicpc.net/problem/13305 주유소와 주유소 간 거리를 이동할 때 이동에 필요한 기름을 주유해야 하는데최소 주유 비용을 출력하는 문제이다 방법은 단순하다경로를 따라 가다가 저렴한 지점에서 많이 주유해야비싼 곳에서 주유하지 않아도 된다 1. 테스트 케이스 분석 백준에 있던 예제이다 인풋 첫 번째 줄에는 주유소 개수가 주어지고두 번째 줄에는 주유소 간 거리가 주어지고그 다음에는 각 주유소의 단위 리터 당 가격이 주어진다 주유소 개수가 n일 때 주유소 간 거리는 n-1개의 값이 주어지고주유소 별 가격은 n개의 값이 주어질 것이다 특정 주유소에 도달했을 때 그 지점 직전까지의 최소 가격을 저장해두었다가두 값을 비교해서 ..
[ Computer Science ]/Algorithm_C++
0. 문제ATM / 실4 / 11399 / greedyhttps://www.acmicpc.net/problem/11399ATM 기기가 한 대 밖에 없는 상황이라인출 시간이 각각 다른 유저들이 대기하고 있을 때 모든 유저의 대기 시간 누적 합이 최소가 되도록 ATM 기기 사용 순서를 정해야하는 문제이다 ATM 유저의 대기 시간의 총 누적합이 최소가 되려면인출 시간이 적게 걸리는 유저부터 사용해야최소가 될 수 있을 것이다 그런데 인풋 조건은 정렬 상태가 아닌 랜덤이므로내가 정렬시켜야 한다 1. 테스트 케이스 분석인풋 첫 줄에는 유저의 수가 주어지고그 다음 줄에는 각 유저의 인출 시간이 주어진다 각 유저의 인출 시간 기준으로 오름차순 정렬한 후 특정 유저 차례가 되면 해당 유저부터 이후 순서의 모든 유저 ..
0. 문제동전 0 / 실4 / 11047 / greedyhttps://www.acmicpc.net/problem/11047 인풋된 여러 종류의 동전으로 목표 금액을 만들 때동전의 개수를 최소화하는 문제이다 동전 종류의 수도 입력하고동전의 가치도 오름차순으로 인풋된다 1. 테스트 케이스 분석백준에 있는 예시첫 줄은 동전의 종류 수와 목표 금액이후에는 동전의 가치가 종류 수만큼 입력된다 해당 예시에서는 10가지 종류의 동전들을 이용해서목표 금액 4200원을 만드는 조합들 중최소 동전 개수를 구하는 것이다 눈으로 보아도 4200 = 1000 x 4 + 100 x 2 임을 알 수 있으나차근차근 생각해보자면 입력된 동전의 가치 중 목표 금액을 초과하는 동전들로는 구할 수 없으니 제외해야하고 인풋 값이 오름차순 정..
0. 풀이한 문제뱀과 사다리 게임 / 골5 / 16928 / bfshttps://www.acmicpc.net/problem/16928 1. 테스트 케이스 분석백준에 있는 예시는 너무 길고 많아서 간단하게 확인할 예제를 chat gpt에 물어보고 활용했다 gpt가 알려준 예제는사다리 2->15 , 5 -> 7뱀 17 -> 3이다 이동을 시작하기 전 초기 상태를 0번째 단계라고 하면0번째 단계에서 시작 위치는 1이고 누적 거리 합은 0 이다시작 위치는 백준에서 범위 값을 0이 아닌 1부터로 했기 때문에 1이고최단 거리를 리턴해야하므로 누적 거리 합을 체크하는 부분이 필요해서현재 위치와 누적 거리 합을 하나의 쌍으로 묶어서 생각했다 현재 위치인 1에서 이동할 수 있는 거리는주사위 1~6까지 중 하나의 값을 ..
0. 풀이한 문제https://www.acmicpc.net/problem/1463 1. 테스트 케이스 분석계산할 수 있는 방법은 총 세 가지- 3으로 나누어 떨어지면 3으로 나누기- 2로 나누어 떨어지면 2로 나누기- 1 빼기 예제로는 부족한 것 같아서 1부터 10까지 직접 계산해봤다모눈 한 칸이 계산 한 번이고각 숫자마다 계산은 아래 방향으로 진행되며최하단은 계산 횟수를 기록했다 이 문제를 단순하게 나눌 수 있는 숫자로만 생각한다면10은 2로 5번 나눌 수 있기 때문에결과로 출력되어야 하는 최단 횟수 3과 다르다 여기서 주의해야할 점을 알 수 있는데10을 계산할 때 2로 나누어진다고 하더라도 1을 빼는 방법으로 (ex. 10-1=9)이전 차례에 계산해두었던 가까운 숫자들의 계산 횟수를 이용하는 것이다 ..
0. 문제 풀이한 문제 - 주사위 게임 3 (프로그래머스 / Lv.0 / 60%) https://school.programmers.co.kr/learn/courses/30/lessons/181916 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 테스트 케이스 분석 주사위를 네 개 굴렸을 때 나오는 숫자가 주어지고 네 숫자 중 같은 숫자가 몇번 등장하는지에 따라 계산방법이 달라지는 문제다 각 경우를 보기 좋게 정리해보면 크게는 총 다섯 가지의 점수 계산법이 있고 정렬된 배열이라고 가정했을 때 세부적으로는 9가지의 경우의 수가 있다 2. 코드 및 풀이 ..
0. 문제 풀이한 문제 - 연속된 수의 합 (프로그래머스 입문 / Lv.0 / 정답률 62%) https://school.programmers.co.kr/learn/courses/30/lessons/120923 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 테스트 코드 분석 문제에 제시된 테스트 케이스는 다음과 같다 입력받은 num개의 연속된 정수를 더해서 total 이 되도록 하는 문제이다 학원에서 고등수학을 가르치다보니 수열 단원의 유형들이 익숙했다 그래서 연속된 세 수의 합? 공차가 1인 등차수열이네! 라는 생각이 들었고 세 수라면 a-d , ..
0. 문제 풀이한 문제 - 최빈값 구하기 (프로그래머스 입문 / Lv.0 / 정답률 68%) https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 테스트 케이스 분석 테이블 하단 파란색 예시들은 문제에 제시된 테스트 케이스 이외에 내가 추가한 예시다 해당 문제에서는 1개 있든 여러 개 있든 가장 많은 개수의 숫자가 최빈값이고 최빈값이 여러 개면 -1을 리턴하고 최빈값이 하나면 그 값을 리턴하는 문제다 문제 자체는 정말 단순했는데 코테 연습이 ..
0. 문제 풀이한 문제 - 저주의 숫자 3 (프로그래머스 입문 / Lv.0 / 정답률 73%) https://school.programmers.co.kr/learn/courses/30/lessons/120871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 테스트 케이스 분석 문제에는 1-10, 15, 40의 테스트 케이스만 제시되어있는데 3의 배수가 아니지만 일의 자리에 6과 9가 포함된 경우는 10-14 사이의 값에 있기 때문에 모두 계산해보았다 아무튼 테스트 케이스를 분석했을 때 해당 숫자 자체가 3의 배수거나 일의 자리 / 십의 자리 / 백의..
0. 문제 풀이한 문제 - 유한소수 판별하기 (프로그래머스 입문 / Lv . 0 / 73%) https://school.programmers.co.kr/learn/courses/30/lessons/120878 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 테스트 케이스 분석 테스트 케이스를 분석하면 다음과 같다 문제에는 표 상단의 세 개만 제시되어 있었지만 문제 풀이 시 고려해야하는 예외 사항들을 추가해서 풀었다 일단 기약분수가 아닌 기약분수로 만들어야 분모에 2 또는 5만 있는지 확인할 수 있기 때문에 기약분수로 만들기 위해 필요한 GCD (최대공..