[프로그래머스] Lv.1 추억 점수 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 방법vector에서 find 함수만 사용할 수 있다면 이 문제는 쉽게 풀 수 있다. find 함수는 특정 값이 vector에 있는지 확인할 때 사용하는 함수다. 값을 찾으면 해당 값의 위치를 알려주는 iterator를 반환하고, 값을 찾지 못하면 vector.end()를 반환한다. 여기서는 photo 벡터의 이름이 name 벡터에 존재하는지 확인하고, 존재한다면 그 이름의 인덱스를 구해서 yearning 값을 더하면 된다. 주어진 정보..
[백준] 1940번 - 주몽 c++
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/1940 문제 설명각각의 재료는 고유한 번호를 가진다.두 개의 재료로 하나의 갑옷을 (두 재료의 합이 고유번호 m) 만드는데 몇 개나 만들 수 있는지 구한다.풀이 방법재료가 15000개가 있으므로 모든 조합을 확인할 경우 매우 오래걸린다.15000C2 =  약 1억 1000으로 매우 비효율적이다.정렬이 필요하지 않고 검색을 빠르게 하는 게 최우선 이므로 자료구조 hashmap을 사용한다.이경우 find에서 O(1)이 시간이 걸리므로 시간복잡도를 O(n)으로 줄일 수 있다.풀이 코드#include #include using namespace std;int n,k,num,answer;int main() { unordered_map weapon; ..
[프로그래머스] Lv.2 주차 요금 계산 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2022 KAKAO BLIND RECRUITMENT에 나온 문제이다.주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 한다. 조건차량이 입차되면 IN, 출차되면 OUT 기록이 주어진다.출차 기록이 없는 차량은 23:59에 출차한 것으로 간주한다.차량 번호가 같은 차량이 여러 번 입차할 수 있으며, 이를 누적 계산해야 한다.같은 차량 번호는 오름차순으로 정렬하여 결과를 출력해야 한다.풀이 ..
[프로그래머스] Lv.0 정수를 나선형으로 배치하기 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr n*n의 배열에 숫자를 1부터 n까지 나선형으로 배치하면 된다.처음에 감이 너무 안 잡혀서 헷갈렸다.구현 문제이고 조건과 범위만 명확히 작성하면 된다.풀이 방법나선형으로 이동시 입력 방향은 고정이다.{오른쪽, 아래, 왼쪽, 위} 이 4방향을 반복적으로 사용하려면 모듈러 연산을 사용한다. 2차원 배열을 만들어 범위를 넘을 경우, 이미 배열에 숫자가 입력된 경우 방향을 변경한다.모든 숫자가 입력될때까지 반복한다. 사실 2차원 백터에 직접 입력받을..
[백준] 16928번 - 뱀과 사다리게임 c++
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/16928 문제 설명뱀과 사다리 게임을 들어본 사람들이 있을 거다. 1부터 시작하여 100번 위치까지 도착하면 되는데 주사위를 굴렸을 때 도착한 위치에 사다리가 있다면 위로,도착한 위치에 뱀이 있다면 아래로 내려가면 된다.내가 주사위 수를 조작할 수 있다면 어떻게 최단 횟수로 100의 위치에 도착할 수 있을 것인가?풀이 방법BFS(너비우선탐색)으로 풀면 된다.1번 칸부터 시작하여 주사위를 굴렸을 경우 1~6까지 전부 탐색해서 최솟값을 찾는다.100번째 칸에 먼저 도착한 값이 최소경우가 된다. 예를 들어, 주어진 사다리와 뱀이 다음과 같다고 가정한다. • 사다리:  2번 → 38번, 7번 → 14번, 8번 → 31번 • 뱀: 16번 → 6번, 49번..
[프로그래머스] Lv.3 정수 삼각형 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 출처 : programmers 1층부터 n층까지 내려가는 경로중 숫자의 합이 가장 큰 경우를 찾으면 된다.아래칸으로 이동시 대각선 왼쪽이나 대각선 오른쪽으로만 이동 가능하다.ex) 7 -> 3 or 7 -> 8  풀이 방법레벨과 달리 생각보다 간단하다. dp로 풀면 된다.맨 아래층 값들을 dp에 저장한 뒤 dp[0][0]이 될 때까지 올라간다.예를 들어 위 이미지를 예시로 들면 현재 삼각형 크기가 5*5이므로 아래와 같이 dp[삼각형 세로길이]..
[프로그래머스] Lv.2 하노이의 탑 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  대표적인 재귀문제로 3개의 막대기둥 (A,B,C)가 주어지고 A의 막대기둥에 꽂힌 원판들을 B 막대기둥까지 옮기면 된다.이때 조건이 주어진다.한번에 하나의 원판만 옮길 수 있다.큰 원판이 작은 원판 위에 있어서는 안 된다.A기둥에서 B기둥까지 모든 원판을 옮기는 최소 가짓수를 구해보자. 문제 이해 처음에 이 문제를 봤을 때는 재귀의 개념이 쉽게 들어오지 않았다. 원판을 재귀적으로 옮기는건 알겠는데 구체적으로 어떻게 옮기는 거지..? 이걸 어떻..
[프로그래머스] Lv.2 카펫 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 카펫은 테두리는 갈색, 중앙은 노란색으로 구성되어 있다.brown은 최소 8 최대 5,000이하의 자연수yellow는 1이상 2,000,000이하의 자연수카펫 가로길이 >=  카펫 세로길이ex) brown = 10, yellow = 2인 경우 카펫의 크기는 [4, 3]이 된다.     *****     *&&*     ***** 즉, brown격자의 개수와 yellow격자의 개수가 주어지면 카펫의 가로, 세로 길이를 구하면 된다. 풀이 방법완전..