java
[BOJ] 15649번 : N과 M (1) (JAVA/자바)
문제 알고리즘 고민 1부터 N 까지의 수를 M 개를 나열한 조합을 출력하는 문제이다. 처음에 바로 든 생각은 DFS 였다. 재귀형식의 DFS 를 사용하였는데 visited를 만들어 방문지를 숫자로 하여 중복되지 않도록 하였고, 합계 대신 String 으로 숫자를 만들며 다음 dfs에게 넘겨주었다. String에 넣어준 숫자의 개수가 M이 될때 최종적으로 출력할 정답 StringBuffer에 넣어주면서 return 하였다. 문자열은 만들어서 넘겨주게 되면 새로운 객체가 생성되기 때문에 Call by Reference 의 문제가 생기지 않을거라고 생각했다. JAVA Code import java.io.BufferedReader; import java.io.IOException; import java.io.I..
[BOJ] 10757번 : 큰 수 A+B (JAVA/자바)
문제 알고리즘 고민 이 문제는 큰 고민을 하지 않았다. 이전에 자바를 공부할 때 BigInteger 라는 큰 수를 처리하는 좋은 기능이 있기 때문에 그 기능을 사용해서 바로 문제를 해결하였다. Python 이나 C/C++ 같은 경우에는 고민이 필요할 것으로 예상된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.math.BigInteger; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedRead..
[BOJ] 2839번 : 설탕 배달 (JAVA/자바)
문제 알고리즘 고민 N을 5와 3으로 더해서 구할 수 있는지에 대한 문제이다. 처음으로 바로 든 생각은 N에서 3씩 빼주면서 5로 나누어 나머지 없이 떨어진다면 그때의 3을 뺀 갯수와 5로 나눈 몫을 더해주면되겠다는 생각이 들었다. 이 문제에서는 N의 최대값이 5000이고 시간제한도 그렇게 어렵지 않기 때문에 통과할 수 있었다. 다만 조건이 조금 더 어렵게 설정된다면 통과를 못할 코드이기에 조금 더 고민을 해보았다. 먼저 1,2,4,7의 경우는 3과 5를 이용해서 만들 수가 없다. 그렇기 때문에 그때는 -1을 출력해주고, 나머지의 경우에는 모두 5와 3으로 만들 수 있었다. 먼저 5의 수를 N/5를 통한 몫으로 구하고 그때 나눈 나머지를 구한다. 나머지가 0인 경우에는 정확히 모두 5로 N을 완성했기 때..
[BOJ] 2775번 : 부녀회장이 될테야 (JAVA/자바)
문제 알고리즘 고민 약간 DP 같은느낌도 나는 쉬운 문제였다. 아래층부터 점차 더해가면서 건물내부의 사람을 만드는 방법을 택했다. 문제의 조건 대로 0층에 먼저 사람들을 1호부터 1명씩 배치했다. 그 후 2층부터 1호일때는 그 바로 밑층의 사람 수인 1을 넣어주고 그 다음부터는 같은층 전호수 사람 + 아래층 같은호수 사람의 수를 더해서 만들어 나아갔다. 최대 크기인 15 15 배열로 먼저 만들어 놓은 후에 층과 호수를 입력받아 바로바로 배열에서 찾아서 입력해주었다. JAVA Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public stat..