View

https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE

SW Expert Academy [D2]

쉬운 문제이다.

풀이

i번째 빌딩에서 조망권이 확보 되는 세대는 다음과 같은 조건을 충족시킨다.

  1. i번째 빌딩 높이 > i-1번째, i-2번째, i+1번째, i+2번째 빌딩 높이

  2. 세대 수 = i번째 빌딩 높이 - max( i-1번째, i-2번째, i+1번째, i+2번째 빌딩 높이)

Read more

퇴사

https://www.acmicpc.net/problem/14501

삼성 코딩 테스트 기출 문제이다.

BFS로 풀었다. 계속 틀렸다고 나온다.

그래서 DFS로 다시 풀었다.

DP 로도 풀 수 있다고 한다.

예시

다음의 예시로 설명하겠다.

BFS 오답 풀이

Read more

톱니바퀴

https://www.acmicpc.net/problem/14891

삼성 코딩 테스트 기출 문제이다.

시뮬레이션 문제이다.

시간이 많이 걸렸지만, 쉬운문제였다.

풀이

다음 톱니바퀴 상태를 예로 들자.

이를 테이블로 나타내면 다음과 같다.

위의 테이블에서 같읕 색깔의 네모로 체크 된 것이 맞닿는 부분이다.

Read more

경사로

https://www.acmicpc.net/problem/14890

삼성 코딩 테스트 기출 문제이다.

시뮬레이션 문제이다.

풀이

  1. 행을 모두 체크한다.

    • i행의 j열은 세 가지 경우로 나뉜다.

      • j+1열과 같은 높이
        • j+1열을 체크한다.
      • j+1열 높이보다 1작음
        • 왼쪽 방향으로 경사로를 세울 수 있는지 체크한다.
        • 다음 그림과 같이 1번 지점은 j+1열 높이보다 1 작기 때문에 2번 방향으로 체크한다.

      • j+1열 높이보다 1높음
        • 오른쪽 방향으로 경사로를 세울 수 있는지 체크한다.
        • 다음 그림과 같이 1번 지점은 j+1열 높이보다 1 높기 때문에 2번 방향으로 체크한다.

  2. 열을 모두 체크한다.

    행을 체크하는 경우와 동일하다.

코드로 옮기는 것이 쉽지 않아 해설을 보고 해결했다.

Read more