[백준] 2056 작업 c++
·
🍞 Problem Solving/Baekjoon
https://www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 풀이과정 dp와 위상 정렬을 같이 쓰는 문제이며 1005 ACM Craft 문제와 비슷한 문제이다. 이처럼 위상정렬과 dp가 같이 쓰이는 문제가 많은 것 같다. 풀이 과정은 1005번 문제와 같지만, 처음에 입력문에서 v를 푸시하는 과정에서 반대로 푸시를 해 고생을 먹었던 문제이다. 몇 번 노드에 몇 번 노드를 푸시해줄 것인지 방향을 잘 생각해서 입력받아야 한다. 도착점이 정해져있지 않으..
[백준] 1766 문제집 c++
·
🍞 Problem Solving/Baekjoon
https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 풀이과정 이 문제는 조건 3개를 잘 기억해야 한다. 1. N개의 문제는 모두 풀어야 한다. 2. 먼저 푸는 것이 좋은 문제가 있는 문제는, 먼저 푸는 것이 좋은 문제를 반드시 먼저 풀어야 한다. 3. 가능하면 쉬운 문제부터 풀어야 한다. 문제를 읽어보면 1번 문제가 쉬운 문제이고 N번 문제가 가장 어려운 문제라고 하였으니 우선순위 큐를 떠올려 봐야한다. 원래 우선순위..
[백준] 1005 ACM Craft c++
·
🍞 Problem Solving/Baekjoon
https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 풀이과정 이 문제는 dp와 위상 정렬을 같이 쓰는 문제이다. res배열이 dp이고, 각 지점을 지날 때 가장 오래 걸리는 시간을 넣는 배열이다. #include #include #include #include using namespace std; int T, N, K, x, y, W; int build[1001]; int indegree[1001]; // 진입차수 int res[1001]; ..
[프로그래머스][Level1] 체육복 c++
·
카테고리 없음
https://programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 제한사항에 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있다고 적혀있다. 그러므로 도난은 0벌, 여벌은 2벌이라고 정해주지 않고 도난당했으면 1을 빼주고, 여벌이 있다면 1을 더해주는 식으로 구현했다. #include #include using namespace std; int num[31]; int solution(int n, vector lost, vector reserve) { int a..
[프로그래머스][Level1] 최소 직사각형 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 가로와 세로의 길이 중에 통틀어서 가장 긴 길이를 찾는다. 그 길이의 명함 번호 인덱스 값과 가로세로 인덱스 값을 저장한다. 만약 가로의 길이가 가장 긴 길이라면, 세로의 길이들을 비교해서 가로의 길이보다 세로의 길이가 길다면 값을 서로 바꿔줬다. 만약 세로의 길이가 가장 긴 길이라면, 가로의 길이들을 비교해서 세로의 길이보다 가로의 길이가 길다면 값을 서로 바꿔줬다. 풀이 #include #incl..
[프로그래머스][Level1] [1차] 다트 게임 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 구상만 잘하면 쉽게 풀 수 있는 문제이다. 첫번째로 할 일은 세 개의 숫자들을 v벡터에 넣는다. S가 나왔을 땐 1제곱, D가 나왔을 땐 2제곱, T가 나왔을 땐 3제곱 \*이 나왔을 땐 idx - 1과 idx에 2를 곱해주고, #이 나왔을 땐 idx에 -1을 곱해주면 된다. 그럼 v벡터에 점수가 계산되어 있을 것이고, 다 더해주면 점수 합계가 나온다. #include #include #include..
[프로그래머스][Level1] 키패드 누르기 c++
·
카테고리 없음
https://programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 맨 처음 왼쪽 손가락이 * 키패드에 있고, 오른 손가락이 #에 있다는 것을 잊으면 안 된다. 그래서 만약 첫 번째나 두 번째로 2, 5, 8, 0을 누를 경우에 손가락이 처음 부분이라면 거기에서 거리를 계산해줘야 된다. 그러므로 *을 배열의 10번째, #을 배열의 11번째로 거리를 계산해서 넣어줬다. numbers int 배열을 char로 착각해서 시간을 날렸다.. #include #include u..
[프로그래머스][Level1] 부족한 금액 계산하기 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 이용료의 합을 answer에 넣는다. 만약 이용료의 합이 갖고 있는 money보다 크다면 이용료에 합에 money를 빼주고 이용료의 합이 money보다 작다면 돈이 부족하지 않다는 뜻이므로 0을 출력해준다. using namespace std; long long solution(int price, int money, int count) { int answer = 0; for(int i = 1; i m..
[프로그래머스][Level1] 시저 암호 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 이 문제는 간단해 보이지만, 생각해야 될 것이 하나 있다. 바로 char 자료형은 1byte 자료형이며 표현할 수 있는 최대 정수 범위는 127이라는 것이다. 만약 'z' = 122인데 n = 25를 더하면 값은 147이므로 char 자료형의 범위를 벗어나게 된다. 그러므로 대문자처럼 문자형에 바로 n을 더해주면 틀리게 되는 것이다. 해결 방법은 int형을 선언해줘서 연산 결과 값을 저장해주고, 만약..
[프로그래머스][Level1] 문자열을 정수로 바꾸기 c++
·
카테고리 없음
https://school.programmers.co.kr/learn/courses/30/lessons/12925 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 문자열을 숫자로 바꿔주는 가장 기본적인 문제다. 만약 int로 바꿔줘야 한다면 stoi함수를 쓰고, long long으로 바꿔줘야 한다면 stoll함수를 쓰면 된다. #include #include using namespace std; int solution(string s) { int answer = 0; answer = stoi(s); return answer; }