[백준] 1719 택배 c++
·
🍞 Problem Solving/Baekjoon
https://www.acmicpc.net/problem/1719 1719번: 택배 명우기업은 2008년부터 택배 사업을 새로이 시작하기로 하였다. 우선 택배 화물을 모아서 처리하는 집하장을 몇 개 마련했지만, 택배 화물이 각 집하장들 사이를 오갈 때 어떤 경로를 거쳐야 하 www.acmicpc.net 풀이과정 예전에 다익스트라 + 플로이드 와샬 문제를 푼 적이 있어서 비슷할 거라고 생각했다. 그러나 생각해야될 것이 많아서 시간이 오래 걸린 문제였다..! 처음에 풀었던 방식은 경유지를 지나면 res배열에 담아주는 방식이다. (2번째 코드) 그러나 이렇게 되면 1행 6열은 1 -> 2 -> 5 -> 6 두개의 경유지를 거치게 되어 첫번째 경유지 2가 아닌, 두번째 경유지인 5를 출력하게 되었다. 최초로 거..
[백준] 1613 역사 c++
·
🍞 Problem Solving/Baekjoon
https://www.acmicpc.net/problem/1613 1613번: 역사 첫째 줄에 첫 줄에 사건의 개수 n(400 이하의 자연수)과 알고 있는 사건의 전후 관계의 개수 k(50,000 이하의 자연수)가 주어진다. 다음 k줄에는 전후 관계를 알고 있는 두 사건의 번호가 주어진다. www.acmicpc.net 풀이과정 예전에 풀었던 플로이드 와샬의 백준 키 순서와 비슷한 문제였다. 키 순서 문제 참고하기 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net 처음에 입력을 받자마자 num[x][y] = 1, ..
[프로그래머스][Level1] 크레인 인형뽑기 게임 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 moves횟수만큼 반복문을 돌려주고 moves가 해당하는 열에 0이 아닌 것이 있으면 인형이 있다는 뜻이므로 스택에 push를 해준다. 만약 stack이 비어있지 않고 top이 넣는 인형과 같으면 두 개씩 터지는 것이므로 2를 답에 더해준다. 여기서 가장 중요한 부분은 break인데 0이 아닌 것을 찾았으면 한 번 실행만 하고 다음 move로 넘어가야 된다. 풀이1 #include #include #..
[프로그래머스][Level1] 신규 아이디 추천 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 문제가 길어 당황할 수 있지만, 단계별로 해나가면 풀 수 있는 문제이다. 단계를 보면 문자를 제거하라는 조건이 있는데 여기서 공백으로 치환해줬다. 공백으로 치환해줬으면 erase와 remove 함수를 써서 지워줘야 한다. #include #include #include using namespace std; string solution(string new_id) { string answer = ""; ..
[프로그래머스][Level1] 신고 결과 받기 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 풀이 (시간초과 1개) #include #include #include using namespace std; vector solution(vector id_list, vector report, int k) { vector answer; map repo; // report map s; // 신고받은 유저 for(int i = 0; i < report.size(); i++){ int idx = repor..
[프로그래머스][Level1] 문자열 내 마음대로 정렬하기 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 전역 변수 N을 선언해줘서 n 인덱스 값을 넣는다. sort함수를 써서 cmp 조건에 따라 오름차순 정렬한다. #include #include #include using namespace std; int N; bool cmp(string a, string b){ if(a[N] == b[N]) return a < b; else return a[N] < b[N]; } vector solution(vect..
[프로그래머스][Level1] 2016년 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12901 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 month 배열에 금, 토, 일, 월, 화, 수, 목을 담아놓고, day 배열에 2016년엔 윤년인 것을 고려하여 숫자들을 담아놓는다. 만약 a = 5, b = 24라면 저번 달까지의 일 수를 더하고, 현재 달의 일수에서 하루를 뺀 수를 더하면 7로 나눈 나머지 수로 요일을 판별할 수 있다. #include #include using namespace std; string solution(int a,..
[프로그래머스][Level1] 음양 더하기 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 signs이 참이면 더해주면 되고, 거짓이면 빼주면 된다. #include #include using namespace std; int solution(vector absolutes, vector signs) { int answer = 0; for(int i = 0; i < absolutes.size(); i++){ if(signs[i]) answer += absolutes[i]; else answe..
[프로그래머스][Level1] 완주하지 못한 선수 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 참가자 중에 동명이인이 있을 수 있으므로, map에 participant key의 value값을 더해주고 completion일 경우 key의 value값을 빼준다. 마지막으로 map을 다 돌며 value값이 1인 경우일 때 출력해준다. 참가를 했지만, 완주를 못 했을 경우이기 때문이다. #include #include #include using namespace std; string solution(..
[프로그래머스][Level1] 예산 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 문제를 잘못 읽어서 고생한 문제이다. 중요한 부분은 각 부서가 신청한 금액만큼을 모두 지원해줘야 되지만, 예산은 남아도 된다. 그러므로 일단 오름차순으로 정렬을 한 뒤, 하나씩 더하고 만약 예산을 넘는다면 지원을 하지 않고, 횟수를 줄여주는 식으로 구현하면 된다. 풀이1 #include #include #include using namespace std; int solution(vector d, in..