본문 바로가기

알고리즘 삽질장

(228)
[이코테] DFS - 음료수 얼려 먹기 해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 문제설명 N by M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분까지 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때, 생성되는 총 아이스크림의 개수를 구하라. 입력조건 첫 번째 줄에 얼음 틀의 세로길이 N과 가로길이 M이 주어진다.(1
[이코테] 구현 - 게임 개발 해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 문제설명 게임 캐릭터가 맴 안에서 움직이는 시스템을 개발하고 있다. 캐릭터가 있는 장소는 1 by 1 크기의 정사각형으로 이뤄진 N by M 크기의 직사각형으로 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수(즉, 행을 의미), B는 서쪽으로부터 떨어진 칸의 개수(즉, 열을 의미)이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터 움직임의 매뉴얼은 다음과 같다. 현재 위치에서 현재 방향을 기준으로 ..
[이코테] 구현 - 왕실의 나이트 해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 문제설명 왕실 정원은 8 by 8 좌표 평면이다. 왕실의 나이트는 다음과 같이 L자 형태로 움직일 수 있다. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 좌표평면의 가로, 세로는 다음과 같으며 나이트의 초기 위치가 가로, 세로 문자열을 합쳐서 주어진다. 예를 들어, a1로 주어진다면 가장 왼쪽의 위 좌표를 의미한다. 입력조건 첫째 줄에 8 by 8 좌표 평면상에서 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 구성된 문자열이 입력된다. 입력 문자는 a1처럼 열과 행으로 이뤄진다..
[이코테] 구현 - 시각 해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 문제설명 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성해라. 입력조건 첫째 줄에 정수 N이 입력된다.(0
[이코테] 구현 - 상하좌우 해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 문제설명 N by N 크기의 정사각형 공간 위에서 가장 왼쪽 위 좌표는 (1, 1)이고 가장 오른쪽 아래 좌표는 (N, N)이다. 상, 하, 좌, 우로만 이동할 수 있으며 시작 좌표는 항상 (1, 1)이다. 이동 계획이 문자열로 주어질 때 최종 위치는 어디인지 출력하라. L : 왼쪽으로 한 칸 이동 -> 열 방향으로 -1 R : 오른쪽으로 한 칸 이동 -> 열 방향으로 +1 U : 위로 한 칸 이동 -> 행 방향으로 -1 D : 아래로 한 칸 이동 -> 행 방향으로 +1 입력조건 첫째 줄에 공간의 크기를 나타내는 N이 주어진다(1 N: conti..
[이코테] 그리디 - 1이 될 때까지 해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 문제설명 어떠한 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택해 수행하려고 한다. 단, 두 번째 연산은 N이 K로 나누어 떨어지는 즉, N % K == 0 일 때만 선택할 수 있음 N에서 1을 뺀다. N을 K로 나눈다. 입력조건 첫째 줄에 N(2
[이코테] 그리디 - 숫자 카드 게임 해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 문제 설명 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 그리고 행에 포함된 카드 중에서 가장 숫자가 낮은 카드를 뽑아야 한다. 이 때 가장 큰 숫자가 뽑히도록 프로그램을 작성하라. 입력조건 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 하여 각각 자연수로 주어진다(1
[이코테] 그리디 - 큰 수의 법칙 해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 문제 설명 동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때, 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다. 예를 들어, 순서대로 2, 4, 5, 4, 6 으로 된 배열이 있을 때, M이 8이고, K가 3이라고 가정했을 때, 큰 수의 법칙으로 6+6+6+5+6+6+6+5인 46이 되게 된다. 단, 서로 다른 인덱스에 해당하는 수가 동일한 수라도 서로 다른 것으로 간주한다. 예를 들어, 3, 4, 3, 4,..