https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 분할 정복은 한번 익혀두면 구조가 같아서 바로 익혀진다. 파이썬으로 풀었어서 이젠 자바로 풀어봤다. 메인 파트이다. 가로 길이를 입력받고, 2차원 배열에 값을 넣어준 뒤, 분할정복 함수를 실행 하고 출력해준다. 끝! 분할 정복 함수는 n행 m열 좌푯값과 정복할 영역의 한 변의 길이를 입력으로 받는다. 그 뒤에 첫 좌푯값을 check 라는 변수에 저장해두고, 영역을 이중포문으로 돌면서 ..
자바
https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net BFS로 풀었다. 정답 비율 보고 겁먹었는데 생각보다 할만한 난이도. 원트클! 대강의 흐름을 이렇게 잡았다. 1. BFS로 물에 안 잡기는 영역을 세기 2. (비가 안 내릴 수 있으니) 0부터 물에 다 잡기는 최대 높이까지 +1씩 반복문으로 돌면서 최대 영역 개수 구하기 우선 String을 int 로 변환해주는 stoi 함수는 편의상 만들어 두고 쓰는 함수이다. 그리고 지역의 행, 열 길이인 N 지역의 ..
https://www.acmicpc.net/problem/2239 2239번: 스도쿠 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다 www.acmicpc.net 처음에 어떻게 풀지 하다가 그래도 구글링 하기 전까지 50%는 다 풀어놨었다 좀 더 시간 들였으면 다 풀었을 텐데 아쉽 일단 1. 백트래킹 + 2. 가로, 세로, 3*3칸 체크하기. 이 2개가 큰 흐름이고 여기까진 알았다. 근데 난 구현이 약한가보다 문제 푸는 순서는 다음과 같다. 9*9칸의 보드판을 2차원 배열에 입력받고 그 중 0인 칸을 따로 모아둔 후 백트래킹으로 0인 칸을 전부 돌면서..
https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 동적 계획법, 그중에 상향식(Tabulation)으로 풀었다. 처음에는 백트래킹으로 풀어봤는데 시간초과가 났다. 메모리가 4MB 밖에 안 되어서 dp는 아니겠다 싶었는데 dp로 푸는 거였다. 풀이에 사용하는 변수들과 입력이다. N, K는 각각 동전 개수와 만들어야 하는 금액이며, 동전을 받기 위해 리스트를 만들어 입력해주었고, 동적 계획법으로 푸므로 dp를 0부터 K를 범위로 하는 정수 배열로 선언..
https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net 맨 밑에 전체 코드 있습니다. 문제설명 텀 프로젝트를 위해 학생들은 서로 팀을 이뤄야 한다. 팀의 조건은 다음과 같다. . 한 학생은 1명의 학생을 가리켜야 한다. 자기자신도 상관 없다. 학생들이 서로 가리키다가 싸이클이 형성되면 하나의 팀이 된다. 이때 자기자신을 가리키면 혼자 한 팀이다. 출력은 팀을 이루지 못한 학생 수이다 학생번호 1 2 3 4 5 6 7 학생이 가리킨 학생번호 3 1 3 7 3..