알고리즘

    4796번 : 캠핑

    4796번 : 캠핑

    https://www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net 문제 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); int count = 1; while(true) { int l = sc.nextInt();..

    16953번 : A -> B

    16953번 : A -> B

    https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 문제 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int y = sc.nextInt(); int n=1; while(x!=y && y!=0) { if(y%2==0) y/=2; else if((y-1)%10==0) y=(y-1)/10; else break; n++; } if(x!=y) System.out...

    1439번 : 뒤집기

    1439번 : 뒤집기

    https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int n=0; for(int i=0;i1, 1=>0 으로 바뀐 개수가 짝수개인 경우 n/2, 바뀐 개수가 홀수개인 경우..

    10610번 : 30

    10610번 : 30

    https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 문제 코드 import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String n = sc.next(); String arr[] = n...

    1789번 : 수들의 합

    1789번 : 수들의 합

    https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long S = sc.nextLong(); long n=0; long k=0; long i=1; while(true) { if(k+i>S) { break; } k+=i; i++; n++; } System.out.print(n); } } 해결방법 서로 다른 N개의 자연수의 합이 S이다. ..

    10162번 : 전자레인지

    10162번 : 전자레인지

    https://www.acmicpc.net/problem/10162 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net 문제 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int T = s.nextInt(); int a,b,c; if(T%10!=0) { System.out.print(-1); } else { a = T/300; T..

    5585번 : 거스름돈

    5585번 : 거스름돈

    https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 문제 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int m = s.nextInt(); int t = 1000-m; int n=0; int a = t/500; n+=a; t-=500*a; a = t..

    백준 2751번 : 수 정렬하기2

    백준 2751번 : 수 정렬하기2

    https://www.acmicpc.net/problem/2751 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 문제 풀이 및 코드 처음 풀 땐 정렬알고리즘을 버블정렬만 알고있어 풀지 못하다가 6개월이 지나고 정렬을 배운 후 재도전했다. 문제 옆에 O(nlogn) 정렬알고리즘을 사용하면 풀린다하여서 처음에 퀵정렬을 이용해 제출하였지만 시간초과가 났다. 이유는 퀵정렬의 최악의 경우 빅오..