본문 바로가기

알고리즘/Programmers4

[알고리즘] Programmers - 순위 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 선수의 수는 1명 이상 100명 이하이다. 경기 결과는 1개 이상 4,500개 이하이다. 경기 결과를 나타내는 리스트가 주어지는데, 이를 통해 순위를 정확하게 파악할 수 있는 선수들의 수를 반환해야 한다. 모든 경기 결과에는 모순이 없다. 문제 해결 승 여부를 확인할 수 있는 "승 그래프"와 패 여부를 확인할 수 있는 "패 그래프", 총 2개의 그래프를 구성했다. 2개의 그래프를 dfs 탐색하며 자신보다 쎈 선수들과 약한 선수들을 파악한다. dfs 탐색을 통해 방문할 수 없는 정점(선수)이 있는 경.. 2023. 9. 30.
[알고리즘] Programmers - 124 나라의 숫자 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 124 나라에는 자연수만 존재한다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용한다. 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 반환해야 한다. n의 범위는 1 2023. 9. 25.
[알고리즘] Programmers - 풍선 터트리기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 일렬로 나열된 n개의 풍선이 정수형 배열로 a로 주어진다. 모든 풍선은 서로 다른 숫자가 써져 있다. 다음과 같은 과정을 반복하면서 풍선들을 단 1개만 남을 때까지 계속 터트린다. 임의의 인접한 두 풍선을 고른 뒤, 두 풍선 중 하나를 터트린다. 터진 풍선으로 인해 풍선들 사이에 빈 공간이 생겼다면, 빈 공간이 없도록 중앙으로 밀착시킨다. 인접한 두 풍선 중에서 번호가 더 작은 풍선을 터트리는 행위는 최대 1번만 할 수 있다. (어떤 시점에서 작은 것을 터트렸다면 그 뒤로는 큰 것만 터트릴 수 있다.. 2023. 8. 28.
[알고리즘] Programmers - 리코쳇 로봇 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 게임 보드판이 1차원 문자형 배열로 주어진다. "."은 빈 공간, "R"은 로봇의 처음 위치, "D"는 장애물의 위치, "G"는 목표 지점을 나타낸다. 방향은 상, 하, 좌, 우로만 움직일 수 있다. 방향을 정하면 장애물이나 맨 끝에 부딪힐 때까지 이동한다. 방향을 정해서 움직이고 목표 지점에 도착할 수 있는 최소 움직임(방향을 선택한 수)의 수를 반환해야 한다. 문제 해결 출발지에서 출발을 해서 BFS를 이용해 문제를 해결했다. 목표 지점에 도착하면 정수형 변수 answer에 최솟값 갱신했다. 델.. 2023. 8. 28.