본문 바로가기

Algorithm/Implementation

(746)
(C++) - 프로그래머스(연습문제) : 제일 작은 수 제거하기 programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr erase를 사용해보는 자료구조 문제였습니다. Code #include using namespace std; vector solution(vector arr) { auto it = arr.begin(); int mini = 0x3f3f3f3f; for(auto a = arr.begin(); a!=arr.end(); a++){ i..
(C++) - 프로그래머스(연습문제) : 2016년 programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 간단한 요일계산 문제였습니다. 풀이방법 1. 윤년이므로 2월은 29일입니다. 1년 366일인 해이죠. 각 달의 일 수를 반환해주는 함수를 만들어줍니다. 2. a이전 달까지의 일수 + b일 하게 된다면 1월 1일부터 지나온 총 일 수가 나옵니다. 이를 7로 나눈 나머지를 구한 결과를 구한 뒤 각 요일에 맞게 반환해주면 됩니다. Code #..
(C++) - 백준(BOJ) 11586번 : 지영 공주님의 마법 거울 답 www.acmicpc.net/problem/11586 11586번: 지영 공주님의 마법 거울 천나라 민호성의 지영 공주님은 매우 아름답다. 공주님 자신도 이 세상 그 누구보다 자신이 아름답다는 것을 알고 있다. 공주님은 자신의 아름다움이 세월의 저편으로 사라지는 것을 매우 두려 www.acmicpc.net 문제에 나온대로 그대로 구현하는 문제였습니다. Code #include using namespace std; int n, mind; vector appearance(100); char ans[100][100]; int main(){ cin >> n; for(int i = 0; i > appearance[i]; } cin >> mind; if(mind == 1){ for(i..
(C++) - 백준(BOJ) 19944번 : 뉴비의 기준은 뭘까? 답 www.acmicpc.net/problem/19944 19944번: 뉴비의 기준은 뭘까? 2020 INPC는 IGRUS 뉴비들을 위해 열리는 대회입니다. 하지만 영수 할아버지나 인용 할아버지와 같이 14학번이지만 마음만은 뉴비인 어르신들 때문에 대회장이 TLE들의 파티가 되자 뉴비의 기준을 정 www.acmicpc.net 간단한 구현문제였습니다. Code #include using namespace std; int main(){ int n,m; cin >> n >> m; if(m==1||m==2) cout
(C++) - 백준(BOJ) 15726번 : 이칙연산 답 www.acmicpc.net/problem/15726 15726번: 이칙연산 첫째 줄에 세 개 정수 A, B, C(1 a >> b >> c; cout
(C++) - 백준(BOJ) 1063번 : 킹 답 www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 꼼꼼하게 구현해야하는 문제였습니다. 풀이방법 1. 먼저 움직였을 때 예상되는 킹의 row와 column을 먼저 구해줍니다. 그 후 킹을 이동해도 체스판 안인지, 유효한 이동인지 확인합니다. 아니라면 continue; 2. 다음으로는 돌과 킹을 움직인 후의 위치가 같은지를 확인합니다. 만약 같다면 해당 돌을 이동 시켰을 때 유효한지 확인합니다. 유효하지 않다면 conitnue; 유효하다면 돌을 이동 시킨 후 해당 위치로 돌..
(C++) - 프로그래머스(연습문제) : 야근 지수 답 programmers.co.kr/learn/courses/30/lessons/12927?language=cpp 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr priority queue를 이용해 풀었습니다. 풀이방법 1. 작업시간들을 모두 max heap priority queue에 넣어줍니다. 2. n만큼 pq.top()은 항상 그 다음 최대의 작업시간이므로 해당 값이 양수일때 1씩 빼준 후 pop하고 1줄어든 값을 다시 push 해줍니다. 3. pq에 있는 원소를 모두 빼주면서 야근 지수를 ..
(C++) - 프로그래머스(고득점 kit - 스택/큐) : 주식가격 답 programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr stack을 이용한 문제였습니다. 풀이방법 두 인덱스 사이의 차이는 초로 환산될 수 있습니다. 예를 들어 0번 인덱스의 price와 1번 인덱스의 price는 1초의 차이가 있습니다. 이를 이용해 stack에 price의 인덱스를 넣는 방식을 사용했습니다. 1. price[stack.top()] > price[i] 인동안 즉 가격이 떨어졌다면 answer[stack.t..