[java] 백준 2750번 수 정렬하기
알고리즘/백준2021. 7. 30. 23:30[java] 백준 2750번 수 정렬하기

문제의 핵심은 오름차순으로 정렬하는 것이다. 이 문장을 보자마자 Arrays.sort()라는 메소드를 이용하면 쉽게 풀 수 있을 것 같아 바로 적용하였다. 기본적으로 오름차순 정렬이기 때문에 간단하게 한줄 써주면 된다. import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new int[N]; for(int i=0; i

[java] 백준 2455번 지능형 기차
알고리즘/백준2021. 7. 29. 12:50[java] 백준 2455번 지능형 기차

여기서 가장 중요한 점은 '기차에 사람이 가장 많을 때의 사람 수를 계산' 하는 것이다. 아래의 코드를 보면 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int max = -1, tot=0; for(int i=0; i

[java] 백준 1292번 쉽게 푸는 문제
알고리즘/백준2021. 7. 28. 12:15[java] 백준 1292번 쉽게 푸는 문제

예제 입력 1에 보면 3, 7을 입력으로 받아서 15가 출력되었는데 그 과정을 설명해보자면 1+2+2+3+3+3+4+4+4+4+5+5+5+5+5 ~~~ + 1000이라고 생각해보았을 때 3번째부터 7번째 수까지 합을 보면 2+3+3+3+4 = 15가 된다. 즉, 내가 생각한 방법은 값을 다 채워 놓고 그 이후에 값을 받아서 A번째부터 B번째까지 값을 뽑아내면 되겠다 싶어 아래와 같이 구현하였다. 배열을 1001로 뽑은 이유는 입력에 보면 (1 ≤ A ≤ B ≤ 1,000) 이기 때문에 배열에 담아봤자 1001개를 넘지 못할 거라고 생각해서이다. 이중 for문을 통해서 1+2+2+3+3+3 ~~ 이런 식으로 만들어주었고 배열은 총 1001개이지만... 반례인 A=1, B=1000이라고 생각했을 때 배열의 ..

[java] 백준 10773번 제로
알고리즘/백준2021. 7. 27. 12:31[java] 백준 10773번 제로

해당 문제 같은 경우 Stack 클래스를 사용하면 쉽게 풀 수 있다. Stack은 LIFO구조로 나중에 들어온 값이 먼저 나간다. 힌트에서 볼 수 있는 결과와 같다. push메소드와 pop메소드로 값을 넣고 뺄 수 있다. import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stack stack = new Stack(); int K = sc.nextInt(); int tot =0; for(int i=0; i

[java] 백준 2440번, 2441번 별 찍기 - 3~4
알고리즘/백준2021. 7. 26. 12:01[java] 백준 2440번, 2441번 별 찍기 - 3~4

2440번 별 찍기 - 3 간단하게 이중 for문을 돌려서 만들 수 있는 문제이다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); for(int i=N; i>0; i--){ for(int j=0; j0; i--){ for(int k=N-i; k>0; k--){ System.out.print(" "); } for(int j=0; j0이라고 하였으니 반복문을 탈출하고 j의 반복문으로 넘어가서 별 개수를 5개만큼 찍게 된다. 첫 번째 반복문을 다시 돌게 되면 N=4가 되고 k의 반복문에서 k는 1이..

[java] 백준 2420번 사파리월드
알고리즘/백준2021. 7. 25. 15:33[java] 백준 2420번 사파리월드

이 문제 같은 경우 나는 문제 내용을 이해하지 못했다... 문제의 요점은 두 서브도메인을 합칠 때, 유명도의 차이가 너무 차이나지 않을 경우에만 두 서브도메인을 결혼시키는 것 인데... 그래서 어쩌라는건지... 출력을 보고 알았다. 절대값을 구하라는 것 (ㅣN-Mㅣ)을 출력하라는 것. 간단하다. Math.abs 함수를 쓰면 절대값을 쉽게 구할 수 있다. 백준 사이트에서는 예제에 나오는 입력값 말고도 극한의 상황을 만들기 위해 입력에 주어진 (-2,000,000,000 ≤ N, M ≤ 2,000,000,000)을 입력값으로 넣어버리는 경우가 있기 때문에 BigInteger 클래스를 썼다. BigInteger 클래스를 쓴 알고리즘 문제는 여기서도 볼 수 있다. 설명도 함께 달아놨으니 BigInteger 클래..

[java] 백준 2581번 소수
알고리즘/백준2021. 7. 25. 14:30[java] 백준 2581번 소수

문제 조건 1. M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 합 2. 둘째 줄에 1번 조건의 소수 중 최솟값 출력 3. M이상 N이하의 자연수 중 소수가 없을 경우 첫째 줄에 -1 출력 import java.util.Scanner; // 2581 class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int M = sc.nextInt(); int N = sc.nextInt(); int[] arr = new int[N]; int count, tot=0, sosuCount=0; for(int i=M; i

[java] 백준 11653번 소인수분해
알고리즘/백준2021. 7. 24. 12:15[java] 백준 11653번 소인수분해

문제 조건 1. 소인수 분해 결과를 한 줄에 하나씩 오름차순으로 출력 (1,2,3 ~~) 2. N이 1인 경우 아무것도 출력 안함 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); if(N == 1) { sc.close(); } for(int i=2; i

[java] 백준 4153번 직각삼각형
알고리즘/백준2021. 7. 23. 21:14[java] 백준 4153번 직각삼각형

마지막에 0 0 0 을 입력시켰을 때 반복문을 종료 시켜주면 되겠다 싶어 이런식으로 구현을 했고 Math.pow 함수를 쓰면 ex) Math.pow(3,2) => 3의 제곱인 9가 나오는 것이다. 그래서 아래와 같이 코드를 작성했다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); // 입력이 0 0 0 일때 반복문 탈출 if(a == 0 && b == 0 && c == 0){ break; } ..

[java] 백준 1978번 소수 찾기
알고리즘/백준2021. 7. 22. 21:09[java] 백준 1978번 소수 찾기

import java.util.Scanner; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int sosu=0; for(int i=0; i

image