728x90
반응형
단계별로 풀어보기 - [정렬] - 18870번 좌표 압축 문제 문제링크 풀이 x좌표 리스트를 받고, 순서대로 정렬한 다음, 그 순위를 출력해주면 된다. 처음 리스트를 정렬해서 그 인덱스 값을 출력하는 풀이를 생각했다. 유의할 점은, ✅ 같은 좌표는 같은 순위를 가지므로 압축된 좌표값도 동일하다. 그냥 정렬된 리스트의 인덱스 값을 출력하면 같은 좌표값도 순위가 다르게 나오기 때문에, 정렬된 좌표들은 set으로 표현하여 중복을 제거해줘야 한다. ✅ 시간 복잡도 고려 일단 input()함수보다 sys.stdin.realine 함수가 더 빨라서, 시간 제한이 있는 경우 후자를 선택하는 것이 좋다. 그리고 단순히 처음 입력받은 좌표 리스트의 좌표값을 순서대로 정렬된 리스트에서 찾아서 그 인덱스 값을 출력하도록 하..
단계별로 풀어보기 - [8단계.기본수학1] - 2839번 설탕배달 문제 문제링크 풀이 쉬워보였는데 은근히 까다로웠던 문제였다. (아무튼 난 그렇게 느꼈다,,) 열심히 코드를 짰는데 어디가 잘못됐는지 모르겠지만 틀렸다고 나와서 그냥 구글링 해서 참고했다. while문 안에서 n이 5로 나눠지면 바로 출력하고, 5로 나누어 떨어지지 않으면 3씩 빼고 봉지 수를 늘린다. 그렇게 계속 루프를 돌다가 n이 0이 되면 첫번째 if문으로 돌아가 bong 출력 n이 0보다 작아지면 -1을 출력하고 루프를 빠져나온다. CODE import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scann..
단계별로 풀어보기 - [8단계.기본수학1] - 2775번 부녀회장이 될테야 문제 문제링크 풀이 k와 n 입력값에 따라 그때그때 계산하는 것이 아니라, 층과 호에 따라 모든 아파트 거주민의 수를 이차원 배열로 만들어 놓은 다음, 테스트 케이스 값에 해당하는 것을 배열에서 꺼내서 출력해야 한다. 재귀함수로 해야 하는 줄 알았는데 그보다 이 방법이 더 간단했다. 먼저 k와 n값은 1 이상 14 이하라는 조건이 있으므로, 이차원 배열로 충분히 만들어놓을 수 있다. apart[k][n]은 k층 n호에 사는 거주민 수이다. 모든 층의 1호는 모두 1명이고, 0층 i호에는 i명이 산다고 했으므로, 이를 먼저 세팅해준다. 그리고 나서 1층부터 14층까지 2호부터 14호까지 하나씩 채우면 된다. k층 n호에 사는 거주민..
알고리즘 - [너비 우선 탐색] - 2667번 단지번호 붙이기 문제 문제링크 풀이 아파트 단지마다 0으로 구분되어 있기 때문에, 한 단지를 탐색하고 나서 다른 단지를 탐색할 때 어떻게 해야 할지 고민을 많이 했다. 이중for문을 되도록이면 돌리고 싶지 않았지만, 이 방법밖에 없었던 것 같다. 그래도 if문을 통해 해당 좌표가 1이고 방문을 하지 않았을 경우에만 bfs를 돌렸기 때문에 시간이 그리 많이 낭비되지는 않았다. 결론적으로는 아직 방문하지 않은 1인 곳에서부터 bfs를 시작하며, 하나의 단지 탐색이 모두 끝나면 아직 방문하지 않은 단지를 찾아 bfs를 도는 구조이다. 단지를 탐색하면서 그 단지 안에 몇 개의 집이 있는지 카운트하고 그걸 result라는 리스트 원소로 추가해주었다. bfs함수에서는 ..