[BOJ 2840 - Java] 행운의바퀴 - 구현문제
·
문제 풀이/백준 문제풀이
문제정보문제상덕이는 최근에 행운의 바퀴를 구매했다. 상덕이는 바퀴의 각 칸에 알파벳 대문자를 아래 그림과 같이 적었다.바퀴에 같은 글자는 두 번 이상 등장하지 않는다. 또, 바퀴는 시계방향으로만 돌아간다. 바퀴 옆에는 화살표가 있는데, 이 화살표는 항상 한 곳을 가리키고 있으며, 돌아가는 동안 가리키는 글자는 바뀌게 된다. 위의 그림에서는 H를 가리키고 있다.상덕이는 바퀴를 연속해서 K번 돌릴 것이다. 매번 바퀴를 돌릴 때 마다, 상덕이는 화살표가 가리키는 글자가 변하는 횟수와 어떤 글자에서 회전을 멈추었는지를 종이에 적는다.희원이는 상덕이가 적어놓은 종이를 발견했다. 그 종이를 바탕으로 상덕이가 바퀴에 적은 알파벳을 알아내려고 한다.상덕이가 종이에 적어놓은 내용과 바퀴의 칸의 수가 주어졌을 때, 바퀴에..
[BOJ 2817 - Java] 알프스식 투표 - 구현문제
·
문제 풀이/백준 문제풀이
문제정보문제전대프연(전국 대학생 프로그래밍 대회 동아리 연합)에서는 매년 프로그래밍 대회를 연다. 올해도 무사히 대회를 개최한 전대프연 회장 성진은 수고해준 스태프들에게 수고비를 주기로 하였다. 하지만 몇몇 스태프는 일을 열심히하지 않았기 때문에 성진은 일을 열심히 한 사람에게만 주기로했다. 하지만 일을 무진장 열심히 한 사람과 덜 열심히 한 사람에게 수고비를 똑같이 주는 것은 불공평하다.고민을 한 성진은 수고비를 받을 사람을 선출하는 방식으로 ALPS(Allegro Leader Picking System) 을 사용하기로 결심했다. ALPS는 이름에서 보이듯이, 아주 유쾌하고 빠르게 사람들을 선별하는 방법이다.우선 대회 참가자들은 "수고비를 받을 가치가 있는 스태프" 한 명을 선택해 투표를 한다. (참가..
[BOJ 3085 - Java] 사탕게임 - 구현문제
·
문제 풀이/백준 문제풀이
문제 정보문제ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다.문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. ..
[BOJ 3085 - Java] 사탕게임 - 구현문제
·
문제 풀이/백준 문제풀이
문제 정보문제상근이는 어렸을 적에 "봄보니 (Bomboni)" 게임을 즐겨했다.가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다.사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오.입력첫째 줄에 보드의 크기 N이 주어진다. (3 ≤ N ≤ 50)다음 N개 줄에는 보드에 채워져 있는 사탕의 색상이 주어진다. 빨간색은 C, 파란색은 P, 초록색은 Z, 노란색은 Y로 주어진다.사탕의 색이 다른 인접한 두 칸이..
알고리즘 - 위상정렬
·
문제 풀이/백준 문제풀이
위상 정렬(Topological Sort)이란?위상 정렬(Topological Sort)은 방향 그래프에서 노드들을 선후관계를 따져 정렬하는 알고리즘입니다. 이 알고리즘은 DAG(Directed Acyclic Graph), 즉 사이클이 없는 방향 그래프에서만 동작합니다. 위상 정렬은 작업의 순서가 중요한 문제에서 자주 사용됩니다. 예를 들어, 프로젝트 관리에서 작업 간의 의존 관계를 정의하고, 작업을 어떤 순서로 수행해야 하는지를 결정할 때 사용할 수 있습니다.위상 정렬의 주요 개념방향 그래프: 그래프에서 간선이 방향을 가지며, 노드 간의 관계가 단방향인 그래프입니다.사이클 없음: 그래프 내에 자기 자신으로 돌아오는 경로가 없어야 합니다. 사이클이 존재하면 위상 정렬을 할 수 없습니다.진입 차수: 특정 ..
[BOJ14501 - Java] 퇴사문제 DP로 풀이하기
·
문제 풀이/백준 문제풀이
위 문제는 구현을 중심으로 생각하고 풀었던 문제이지만 부가적인 개념이 필요했다.다른 스터디원은 DFS로 생각하고 구현하였으며, 나는 DP를 생각하고 풀었다. 우선적으로 DP를 활용하여 생각할 때 각 날짜별로 최대값을 저장해야 한다.DP라는 배열을 만들고 각 날짜별로 받을 수 있는 급여의 최대값을 저장한다.만약 1일에서 T1이 7이고 P1이 30이라면  DP[0] (1일) 은  최대값이 30이 될 것이다. 1일 이후에 dp[0]의 값이 변동될 수 없기 떄문에 고정이다. [테스트] 만약 1일에서 T1이 2이고 P1이 30, 2일에서 T1이 1이고 P1이 50이라면 어떻게 생각할까?첫 과정 -> 1일에서 dp[0]의 값은 30, dp[1]의 값은 이어서 30일것이다.두번째 과정 -> 2일에서 dp[1]의 값은..