실버(3)
-
[ 백준 ] [ JAVA ] 1018 체스판 다시 칠하기
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 예제 입력은 추가로 더 있으나 모두 첨부하면 늘어질 것 같아 생략한다. 8x8 크기의 체스판을 만드려고 하는데, 사이즈가 다를 수도 있고, 검정, 흰색의 배치가 엉망일 수도 있다. 하여 주어진 보드에서 체스판으로 만들려면 변경해야 되는 색의 최소 개수를 정하면 된다. 우선 위의 사진 처럼 8x8 사이즈로만 자르면 된다. (3개만 만든 이유는 귀찮아서이다.. 참고만 하길) 그리고 체스판을 만..
2023.06.04 -
[ 백준 ][ JAVA ] 11659 구간 합 구하기 4
https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net array[]에서 i 부터 j 까지 의 수들을 더하면 된다. 아무생각 없이 그냥 이중for문 썼는데 이렇게 시간 초과가 뜬다. 시간 복잡도를 줄이려면 당연히 이중for문을 없애야 되겠지 구간 합을 구하는 공식으로 풀면 된다. 사실 문제 제목 자체가 '구간 합 구하기'니까 당연한 소리다. 예시로 주어진 배열 A는 [ 5, 4, 3, 2, 1 ]이다. 합 배열을 만들어주면 배열..
2023.06.01 -
[ 백준 ] [ JAVA ] 1193 분수 찾기
https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 해당 문제를 풀기 위해서 우리가 알아야할 정보는 무엇일까? x번째의 값을 알기 위해서는 속해있는 Group이 몇 번째인지, 짝수인지 홀수인지 알아야 한다. 다음으로는 이전 Group까지의 분수 개수를 알아야한다. 그래야 해당 Group의 처음 Index를 기준으로 x의 위치를 알고 값을 알 수 있기 때문이다. 우선 주어진 문제에 배열을 살펴보자 위 사진처럼 홀수, 짝수 그룹으로 묶어서 확인해보면 군수열이 보일 것이다. 군수열이란 ? 수열을 n개의 항씩 묶어서 규칙성을 가진 군으로 나눈 수열 EX ) 1, 1, 2, 1, 2, 3..
2023.06.01