본문 바로가기

Algorithm/Implementation

(750)
(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..
(C++) - 프로그래머스(월간 코드 챌린지 시즌 1) : 삼각 달팽이 답 programmers.co.kr/learn/courses/30/lessons/68645?language=cpp 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 재귀 또는 일반적인 구현으로 풀 수 있는 문제였습니다. 풀이방법 1. 먼저 삼각형을 적절히 변형해 생각합니다. 정삼각형이 아닌 직각삼각형이라고 생각하면 인덱싱이 편합니다. 2. 다음과 같은 높이가 n인 직각삼각형을 만들기 위해서는 3가지 방향으로 수를 채워야 합니다. 2-1. (1)번 방향 : 아래로 수직하강합니다. 2-2. (2)번 방향 : 우측으로 평행하게..
(C++) - 백준(BOJ) 2346번 : 풍선 터뜨리기 답 www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 첫째 줄에 자연수 N(1≤N≤1,000)이 주어진다. 다음 줄에는 차례로 각 풍선 안의 종이에 적혀 있는 수가 주어진다. 편의상 0은 적혀있지 않다고 가정하자. www.acmicpc.net deque을 이용하면 쉽게 풀 수 있는 문제였습니다. 풀이방법 풍선을 터뜨렸을 때 만약 움직이려는 숫자가 양수라면 먼저 터뜨리고 움직인다는 점을 고려해 1을 뺀 만큼 이동시킵니다. 음수라면 해당값에 음수를 취한 값만큼 이동시키면 됩니다. Code #include using namespace std; int n; int moveBalloon[1001]; deque balloon; vector ans; int main(){ cin >> n; f..
(C++) - 백준(BOJ) 5928번 : Contest Timing답 www.acmicpc.net/problem/5928 5928번: Contest Timing Bessie the cow is getting bored of the milk production industry, and wants to switch to an exciting new career in computing. To improve her coding skills, she decides to compete in the on-line USACO competitions. Since she notes that the contest starts on www.acmicpc.net 시간계산 문제였습니다. 풀이방법 1. 0일 0분 0시를 기점으로 11월 11일 오전 11시 11분을 분단위로 계산합니다. 2. 마찬가지..
(C++) - 백준(BOJ) 3986번 : 좋은 단어 www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net stack을 사용하는 간단한 문제였습니다 풀이방법 * stack s가 비어있을 경우 s.top() 함수를 호출한다면 오류가 발생하므로 조심해야 합니다. 모든 단어를 검사하면서 stack이 비어있지 않다면 s.top != 단어인 경우엔 push, s.top != 한 단어인 경우엔 pop해주면 됩니다. 마지막에 stack이 비어있다면 좋은 단어입니다. Code #include using namespace std; int ma..