반응형

알고리즘/부르트포스 7

[백준] 9095 : 1, 2, 3 더하기

https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 수가 11밖에 없길래 배열을 생각했음 법칙이 있어서 단순하게 풂 1로만 이루어졌을 때, 2와 1로만 이루어졌을 때, 3이 포함됐을 때를 나눠서 코드를 구현해보자 내 코드 메모리 : 14120 KB 시간 : 128 ms 코드길이 : 632 B [내 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(..

[백준] 1748 : 수 이어쓰기 1

https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 반복된 계산을 많이 해야 해서 아예 배열로 만들어서 계산함. 내 코드 메모리 : 14044 KB 시간 : 120 ms 코드길이 : 1693 B [내 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static int[] num = {9, 90*2, 900*3, 9000*4, 90000*5, 900000*6, 9000000*7, 90000000*8}; publi..

[백준] 6064 : 카잉 달력

https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net M과 N의 최소공배수가 최대연도니까 그만큼 for문을 돌림. year을 +1 해주면서 x 와 y 를 계산해줌. 이때 나머지가 0인 경우를 생각해야 하기 때문에 x, y를 입력할 때 -1을 해준다. 나온 year에 +1 해준 값이 답. 내 코드 메모리 : 44152 KB 시간 : 632 ms 코드 길이 : 1131 B [내 코드] import java.io.BufferedReader; import ja..

[백준] 1107 : 리모컨

https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net +,- 버튼만 사용해서 도달하는 경우와 버튼으로 바로 채널로 이동하여 +,- 버튼 사용하는 경우 두 가지 중 최솟값을 구하려고 했다. 가장 차이가 적은 고장난버튼이 포함되어있지 않은 채널을 구하는 방법을 고민하다가, 모든 경우의 수를 전부 탐색할 때, 입력된 수부터 탐색하여 해당 수에 고장난버튼이 있으면 ++해서 탐색, --해서 탐색 두 가지를 돌렸다. 그런데 구현을 너무 복잡하게..

[백준] 1476 : 날짜계산

https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net %를 이용해서 풀려고 했는데 단순 반복문으로 가능했다. 쉽게 풀 수 있던 문제를 너무 꼬아 생각했던 것 같음. 메모리 : 14112 KB 시간 : 124 ms 코드길이 : 809 B [내 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringT..

[백준] 3085 : 사탕게임

https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net N의 최대가 굉장히 작아서 4중포문까지도 괜찮았기 때문에 편하게 코드를 짰다. 근데 코드가 너무 반복되는 것도 많고 복잡하고 길어지는 느낌이라 결국 찾아봄. 반복되는 부분이 많으면 따로 메소드를 짜서 사용하는 것이 편하다고 한다. 메소드 짜는 것도 피하지 말고 많이 해봐야 할 것 같음. 바꿀 수 있는 부분을 하나씩 바꾼 후에 요소가 바뀐 행과 열을 탐색 해주고 최댓값을 구한다. 변경은 한 번만 되니 바꿨던 부분은 다시 돌려줌. 가로로 변경되면 요소가 바뀐 열이 2개, 요소가 바뀐 행이 1개 세로로 변경되면 요소가 ..

[백준] 2309 : 일곱난쟁이

전체 키를 합한 후 100을 뺀 값을 저장. 더해서 위의 값을 만족하는 두 수를 저장한 후에 제외한 7개의 수를 오름차순으로 출력. 메모리 : 14092 KB 시간 : 124 ms 코드길이 : 1183 B import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buff..

반응형