전체 글

전체 글

    [BOJ] 10757번 : 큰 수 A+B (JAVA/자바)

    [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/자바)

    [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/자바)

    [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..

    [BOJ] 10250번 : ACM 호텔 (JAVA/자바)

    [BOJ] 10250번 : ACM 호텔 (JAVA/자바)

    문제 알고리즘 고민 n번째로 도착한 손님이 몇층 몇호에서 머무는지에 대한 문제이다. 먼저 1호실부터 다 채운 후 2호실, 3호실 순서로 진행된다. 손님이 머무를 층수를 구하기 위해서는 앞에서부터 H 명씩 차기때문에 N에서 H씩 빼주다 H보다 작아질때의 값을 구하면 된다. 따라서, N%H를 하게되면 앞의 1호실 부터 순차적으로 차고 남은 방의 m층의 위치가 나오게되는데 N%H == 0 일때를 고려해서 예외로 꼭대기 층은 H로 고정시켜줘야한다. 다음으로 호수를 구해야하는데 층수를 구할때와 마찬가지로 N에서 H씩 빼주는 과정을 거치면 되는데 이때 층수와는 다르게 나머지 값이 아닌 몇번 수를 몇차례 빼줬는지에 대한 변수이기 때문에 N/H를 구하면된다. 이때도 마찬가지로 N%H != 0 일때는 남은 사람수가 있다..