본문 바로가기
반응형

알고리즘/알고리즘 문제풀이11

[이코테-구현] 상하좌우 상하좌우 문제는 이코테 책에 수록된 구현문제이다. 그리디 알고리즘은 이전 포스팅에서 끝나고 이제는 구현 문제로 넘어온 것이다. 문제 설명 여행가 A는 N x N ㅋ크기의 정사각형 공간에 서있다. 이 때, 시작 좌표는 항상 1, 1이고, L, R, U, D 중 하나의 문자가 반복적으로 주어진다. LRUD는 각각 왼쪽으로 한 칸, 오른쪽으로 한 칸, 위쪽으로 한 칸, 아래쪽으로 한 칸 움직인다는 의미이다. 정사각형 공간을 벗어나는 움직임은 무시된다. 입출력 조건은 각각 n의 크기와 이동할 계획서가 주어지면 도착할 지점의 좌표를 공백으로 구분하여 출력하는 것이다. 문제 해결 아이디어 나는 이번 문제를 다음과 같이 풀었다. 입력받은 배열만큼 반복해서, 계획이 정사각형을 벗어나는지 확인한다. 만약 벗어나지 않으면.. 2022. 10. 4.
[이코테 - 그리디 알고리즘] 숫자 카드 게임 숫자 카드 게임 문제는 2019 국가 교육기관 코딩 테스트 기출문제라고 한다. 사실 그게 중요한 건 아니니까 넘기고, 문제를 설명하도록 하겠다. 문제 설명 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 이 게임에서는 숫자가 쓰인 카드들이 N x M 형태로 놓여있다. 여기서 N은 행이고, M은 열이다. 우선 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택하고, 선택된 행에서 가장 숫자가 낮은 카드를 뽑아야 한다. 따라서 처음에 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다. 입력조건 첫 째 줄은 N과 M의 입력조건(1 2022. 10. 3.
[이코테 - 그리디 알고리즘] 큰 수의 법칙 이것이 취업을 위한 코딩테스트다 with 파이썬이라는 책이 있다. 유튜버 나동빈님이 쓰신 책이다. 이 책에는 큰 수의 법칙이라는 문제가 나오는데, 이 문제는 그리디 알고리즘으로 푸는 문제이다. 문제 설명 N개의 자연수로 이루어진 배열이 입력되었을 때, 배열의 수들을 이용하여 M번 더하여 가장 큰 수를 만들어야 한다. 단, 배열의 특정한 인덱스에 해당하는 수가 K번을 초과하여 연속으로 더해질 수 없고, 인덱스가 다른 경우 수가 같더라도 서로 다른 수로 간주한다. 문제 해결 아이디어 "K번을 초과하여 연속으로 더해질 수 없다"는 문구와 "인덱스가 다른 경우 수가 같더라도 서로 다른 수로 간주한다"는 문구에 주목을 해서 알고리즘을 설계했다. K번을 초과하여 더해질 수 없다는 말은 배열에서 가장 큰 수가 K번까.. 2022. 10. 2.
반응형