알고리즘/백준

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