BOJ
-
[백준 - 2003번] 수들의 합 2 -Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 8. 6. 15:44
이번에는 BOJ의 2003번 문제 "수들의 합 2"를 풀어보도록 하자 입력으로 수열의 개수 N, 마지막에 판별해 줄 값 M이 주어지고, 그다음 줄에 수열이 차례 대로 주어진다. 출력으로, 구간 합이 M이 되는 경우의 수를 출력하면 되는 문제이다. 반복문을 2번써서 풀어주면 되는 간단한 문제이다. 성공한 코드는 아래와 같다. import java.io.*; import java.util.*; public class sample { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new ..
-
[백준 - 17355번] Messi An-Gimossi - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 8. 6. 15:40
이번에는 BOJ의 17355번 문제 "Messi An-Gimossi"를 풀어보도록 하자 처음 이 문제를 딱 봤을 때, "모듈러 연산으로 풀면 되겠네!! 간단하네!!" 라고 생각하고, 이틀동안 문제가 안풀려서 끙끙 앓았다. 결국에 풀긴 했는데, 아래 코드보다 더 연산을 빠르게 할 수 있는 것 같아서 이 부분에 대해서는 더 생각해 봐야 될 것 같다. 이 문제를 풀기 위해서, 크게 3부분으로 나눠서 프로그램을 만들었다 소인수 분해를 통해서 분자, 분모가 서로소가 되도록 소인수들을 저장해 줄 HashMap 을 만들어줌 입력되는 값을 소인수 분해 해줘서, A를 소인수분해한 값이 map의 음수부(-)에 있으면 지워주고, B를 소인수 분해한 값이 map양수부(+)에 있으면 지워줌 map에 남아있는 것을 음수부(-)와..
-
[백준 - 13277번] 큰 수 곱셈 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 8. 6. 14:47
이번에는 BOJ의 13277번 문제 "큰 수 곱셈"을 풀어보도록 하자 언제나, 큰 수 라던지 연산이 많은 문제들을 접하면 잠시동안 머리에 망치맞은 듯이 멍해진다. 하지만, 시간복잡도를 줄이는 방법등을 제대로 알고 나면 매우 쉬운 문제들이 많다. 이번문제는 딱히 연산 줄이던가 하지 않더라도 Java로 문제를 풀면 java.math.BigInteger를 이용해서 간단히 풀 수 있다. 입력으로 정수 A, B가 주어지고, 출력으로 두수의 곱을 출력하면 되는 문제이다. 성공한 코드는 아래와 같다. import java.io.*; import java.math.BigInteger; import java.util.*; public class sample { public static void main(String[] ..
-
[백준 - 17363번] 우유가 넘어지면? - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 8. 6. 14:41
이번에는 BOJ의 17363번 문제 "우유가 넘어지면?" 을 풀어보도록 하자 위에 나와 있는 그림과 같이, "우유" 를 넘어 뜨려서 "아야"로 만들면 되는 문제이다.입력으로 주어지는 문자열들을 요리조리 잘 재배치 시키고, 문제에 나와 있는 표를 활용해서 풀면 된다. 성공한 코드는 아래와 같다. import java.io.*; import java.util.*; public class sample { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(ne..
-
[백준 - 17362번] 수학은 체육과목 입니다 2 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 8. 6. 14:36
이번에는 BOJ의 17362번 문제 "수학은 체육과목 입니다 2" 를 풀어보도록 하자 문제가 매우 긴데, 딱히 설명할 것은 별로 없다. 입력으로 자연수 n 이 주어지고, 위에 그림에 나와 있듯이, 엄지부터 시작해서 차례대로 번호를 더해 나간다고 했을 때, 번호가 n일 때 손가락을 구해주면 되는 문제이다. 성공한 코드는 아래와 같다. import java.io.*; import java.util.*; public class sample { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw =..
-
[백준 - 14928번] 큰 수 (BIG) - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 8. 6. 14:29
이번에는 BOJ의 14928번 문제 "큰 수 (BIG)"를 풀어보도록 하자 입력으로 주어지는 수가 10^1,000,000의 크기로 정수형으로 받을 수 없다. 따라서, String으로 받은다음에, 1의자리 부터 차례대로 나머지 연산을 해주면서 답을 구해주도록 했다. 성공한 코드는 아래와 같다. import java.io.*; import java.math.BigInteger; import java.util.*; public class sample { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWrite..
-
[백준 - 11758번] CCW - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 8. 6. 14:23
이번에는 BOJ의 11758번 문제 "CCW"를 풀어보도록 하자. 이차원(2D)에서 차례대로 주어지는 세점의 회전방향 (CW(Clockwise, 시계 방향), CCW(Counter-Clockwise, 반시계 방향)) 을 결정하기 위해서는, 세점의 좌표가 (x1, y1), (x2, y2), (x3,y3)와 같이 주어졌다 할 때, 신발끈 공식을 이용해서 세점이 CW인지 CCW인지 간단하게 구할 수 있다. 신발끈 공식을 통해서 해당 값이 0보다 크면 반시계 방향, 0보다 작으면 시계 방향, 0과 같으면 일직선이 된다. 성공한 코드는 아래와 같다. import java.io.*; import java.util.*; public class sample { public static void main(String[]..