본문 바로가기

전체 글

(125)
14891 톱니바퀴 www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 간단한 구현 문제지만 톱니바퀴의 회전과 이어서 회전되는 다른 톱니바퀴를 구현하는데 복잡하게 생각하여 시간을 꽤 낭비한 문제이다. 처음 통과했을 때의 코드는 회전을 구현할 때 다소 가독성이 떨어졌는데, 다른 코드를 참고해보니 덱(deque)으로 회전을 쉽게 구현할 수 있다. 1. 반시계 방향으로 회전할 때, 맨 앞의 원소를 맨 뒤에 넣음 2. 시계 방향으로 회전할 때, 맨 뒤의 원소를 맨 앞에 넣음 심플하지만..
징검다리 건너기 programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 처음에 이 문제를 접근할 때 DP로 생각했었다. 왜냐하면 K개 이상의 연속된 돌 중에서 가장 큰 값이 건널 수 있는 인원 수이기 때문이다. K개의 돌 중에서 가장 값이 큰걸 기준으로 DP배열에 기록해두고, 이후에 진행할 때는 덱을 사용하여 먼저 넣었던 원소를 빼고, 그 다음 원소를 추가 및 최댓값을 갱신하여 다시 DP 배열에 기록하는 방식이다. 그런데 정확성은 모두 통과했지만 효율성을 통과하지 못했다. 의심되는 원인으로는 최댓값을 구하기 위한 방법으로 max_element를 K개의 범위에서..
합승 택시 요금 programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 문제의 특징은 묵시적 그래프인 것과 최단거리를 구하는 것, 합승하는 경우를 계산하는 것이다. 일반..