문제https://school.programmers.co.kr/learn/courses/30/lessons/12925 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근법각 언어마다 라이브러리 사용하면 된다. 코드C#include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.int solution(const char* s) { return atoi(s);} 헤더에 선언되어 있는 atoi() 함수는 문자열을 정수로 변환해 반환한다.ASCII to INT 라는 뜻이다. C++에서도 사용할 수 있다.(하지만 굳이?)C..
문제https://www.acmicpc.net/problem/2839 접근법우리가 거스름돈을 줄 때 최소 개수로 주기 위해서는 큰 단위 순으로 계산을 하면 된다. 예를 들어 12,530원을 거슬러줘야 하는 상황일 때 큰 단위 순으로 10,000원 2개, 1,000원 2개, 100원 5개, 10원 3개 이런 식으로 계산한다는 뜻이다.이 문제도 비슷한 맥락으로 생각해보면 5kg으로 최대한 가져간 후, 남은 무게를 3kg으로 가져가면 된다. 이때 주의할 점은 5kg로 최대한 가져간 후 남은 무게가 3의 배수가 아닐 경우 3kg으로 남은 무게를 전부 배달할 수 없다는 것이다. 따라서 남은 무게가 최소한의 3의 배수가 될 때까지 5kg으로 배달하고 나머지는 3kg으로 배달해야 한다. 풀이javaimport jav..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근법출전 순서는 사실 필요하지 않다. 그냥 B팀에서 A팀을 최대한 많이 이기면 된다.따라서 A와 B 배열을 오름차 순으로 정렬했다. A와 B 배열의 인덱스를 각각 만든 뒤 각각의 숫자를 비교한다.비교해서 나올 수 있는 경우는 2가지가 있다.1. A팀의 점수가 높거나 같은 경우2. B팀의 점수가 높은 경우 1번의 경우 현재 A팀의 점수는 A팀이 가지고 있는 숫자 중 가장 작은 숫자이다.따라서 해당..
문제https://www.acmicpc.net/problem/11000 접근법문제를 처음 봤을 땐 먼저 수업을 정렬해야겠다고 생각했다.시작 시간 순으로 정렬을 한 뒤, 현재 수업이 들어갈 강의실을 찾으면 된다.현재 수업이 들어갈 강의실은 앞 수업들의 종료 시간을 비교하면 된다. 현재 사용 중인 강의실들의 종료 시간을 저장한다.저장된 강의실의 종료 시간 중 가장 먼저 끝나는 강의실과 현재 수업의 시작 시간을 비교해 해당 강의실을 사용할지, 추가로 강의실을 사용할지 결정한다. 왜 가장 먼저 끝나는 강의실만 비교하면 될까?가장 먼저 끝나는 강의실을 현재 수업에서 사용할 수 없다면 더 늦게 끝나는 강의실 역시 사용할 수 없기 때문이다 코드import java.io.BufferedReader;import java..
목차를 클릭해보세요^⏝^https://school.programmers.co.kr/learn/courses/30/parts/17042 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 12세 이하인 여자 환자 목록 출력하기SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNOFROM PATIENTWHERE AGE NULL 처리하는 방법: IFNULL(Column명, "NULL일 경우 대체 값")인기있는 아이스크림SELECT flavorFROM first_halfORDER BY total_order d..
문제https://www.acmicpc.net/problem/1753 1753번: 최단경로첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가www.acmicpc.net 접근법다익스트라 알고리즘을 이해하는 문제이다. '시작점에서 다른 모든 정점', '간선의 가중치가 모두 양수' 라는 점에서 다익스트라로 푸는 문제임을 알아차려야 된다. 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util...
문제https://www.acmicpc.net/problem/2156 2156번: 포도주 시식효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규www.acmicpc.net 접근법DP 기본 문제이다. i번째 포도주를 마실 순서라고 할 때, 내 앞에서 연속으로 2잔을 마신 경우는 제외해야 하므로 ①DP[i - 2] ② DP[i - 3] + wine[i - 1] 중 큰 값을 찾아야 한다. 여기서 주의할 점은, i번째 포도주를 안 마시는 경우가 존재할 수 있으므로 아래와 같이 점화식을 작성해야 한다.DP[i] = i번째 포도주를 마실 순서일 때, 마신 누적 포도주 양의 최댓..
문제 https://www.codetree.ai/problems/maze-runner?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 접근법 크게 동작하는 것을 나누면 2가지로 나눌 수 있다. 1. 참가자들 전부 이동 2. 정사각형 찾아서 90도 시계방향으로 회전 매 초마다 참가자들을 이동하기 위해 참가자들의 좌표 정보를 저장하고 있어야 한다. 한 칸에 여러 참가자가 존재할 수 있으므로 2차원 배열에 참가자들의 위치를 표시하지 않고 ArrayList를 사용해 저장했다. 참가자들 이동 ..