백준
-
[백준 알고리즘/Kotlin] 1789번 수들의 합IT Study/백준 알고리즘 2023. 12. 21. 16:56
바로 문제로 들어가기 전에... Int, Long 범위보고 가실게요~ 1. Int와 Long의 범위 1. Int 범위 크기 : 32 bit 범위 : - 2³¹ ~ 2³¹ -1 (- 2,147,483,648 ~ 2,147,483,647, 약 -21억 ~ 21억) 2. Long 범위 크기 : 64bit 범위 -2⁶³ ~ 2⁶³ - 1 (약 -9경 ~ 9경) 대부분의 코드에서는 Int를 사용해도 충분했기에 Int를 사용했지만, 문제에 주어진 입력 조건을 확인해보니, Long을 사용해야겠습니다. 2. 최종 코드 n * (n + 1) / 2 연속되는 자연수의 합 공식을 사용하여 풀이했습니다. 연속되는 수의 곱을 찾기 위해 루트를 사용했는데요, 루트를 이용하면 두 수의 곱에 가장 가까운 값을 빠르게 찾을 수 있을 ..
-
[백준 알고리즘/Kotlin] 2839번 설탕 배달IT Study/백준 알고리즘 2023. 12. 21. 12:08
개념부터 체크하죠. 1. 정수의 값은 깊은 복사를 할 필요가 없다? import java.io.BufferedReader import java.io.InputStream fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val n = br.readLine().toInt() var remain = n br.close() } Kotlin에서는 정수를 복사할 경우, 별도의 깊은 복사를 위한 함수를 사용하지 않고 단순히 다른 변수에 정수 값을 할당하면 깊은 복사가 이루어집니다. 2. Kotlin의 나누기/나머지 Java를 했을 때가 기억이 나는군요... 정수끼리 나눈다면(나머지를 구한다면) 몫(나머지)은 정수가, 나누는 값 중 실수가 존재..
-
[백준 알고리즘/Kotlin] 11047번 동전 0 (feat. 노선 정했다... )IT Study/백준 알고리즘 2023. 12. 20. 16:07
자바스크립트 알고리즘... 안녕... 이제는 널 보내줄게... 고마웠고... 한동안 바바이... 아디다스... ⭐️ 1. val, var 차이 val: 상수, 초기화 후 값 변경 불가 (그러나 변수의 참조가 가리키는 객체의 내부 값 변경 가능) var: 변수, 초기화 후 값 변경 가능 (그러나 다른 타입의 값을 넣을수는 없다.) 2. 입력 받기 입력을 받는 기본 문장입니다. 앞으로 Kotlin으로 문제를 풀이하기 위해 위의 코드를 기억하거나 복사해서 사용하도록 하겠습니다. import java.io.BufferedReader import java.io.InputStreamReader fun main() { val br = BufferedReader(InputStreamReader(System.`in`))..
-
[백준 알고리즘/JavaScript] 1000번 A + B (Feat. 입력받기)IT Study/백준 알고리즘 2023. 12. 14. 13:01
처음으로 JavaScript로 백준을 풀이하기에 앞서, 입력받는 것부터 확인해 보도록 하죠. 1. 하나의 값 입력받기 // ex) 2 (하나의 값을 입력받을 때) const fs = require('fs'); const input = fs.readFileSync("/dev/stdin").toString().trim(); 2. 여러 값 입력받기 2-1. 한 줄에 공백으로 구분된 여러 값을 입력받기 // ex) 10 21 3 (한 줄에 공백으로 구분된 여러 값을 입력받을 때) const fs = require('fs'); const input = fs.readFileSync("/dev/stdin").toString().trim().split(" "); 2-2. 여러 줄에 줄 바꿈으로 구분된 여러 값을 입력받..
-
[백준 알고리즘/Java] 10811번 바구니 뒤집기IT Study/백준 알고리즘 2023. 3. 14. 14:31
10811번 '공 바꾸기'는 for문과 tmp(temp, 임시 값 저장 변수)를 사용하여 비교적 수월하게 풀이할 수 있었습니다. 그러나 역순으로 출력하는 문제는 for문을 사용하되, 몇 번을 변경해야 할지... 도통 감이 오지 않았습니다. 그러다 Jaeho Kim님의 블로그에서.. while문을 사용하여 역순으로 출력하는 것을 보았고... 감탄을 금치 못했습니다.. (저는 왜 while문 사용할 생각을 못했을까요...) Jaeho Kim님은 Scanner와 System.out.print()를 사용하여 소스코드를 작성하셨으니 참고하실 분은 글 하단 링크를 확인해 주세요..! 저는 지난 포스트인 [백준 알고리즘/Java] 15552번 빠른 A+B를 통해 [백준 알고리즘/Java] 15552번 빠른 A+B 사..
-
[백준 알고리즘/Java] 2439번 별 찍기 - 2IT Study/백준 알고리즘 2023. 3. 14. 10:46
문제를 풀기에 앞서, 별이 출력되는 원리(?)에 대해 알아보도록 하겠습니다. 5 입력 시, 4칸 공란 + 1개 별 3칸 공란 + 2개 별 ... 0칸 공란 + 5개 별 10칸 입력 시, 9칸 공란 + 1개 별 8칸 공란 + 2개 별 ... 0칸 공란 + 10개 별 1. 입력하는 값 n만큼 반복되어 한 줄씩 출력 (변수 n 선언 및 for문 사용) import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);// 입력 받는 변수 n int n = sc.nextInt(); for(int i = 1; i
-
[백준 알고리즘/Java] 15552번 빠른 A+BIT Study/백준 알고리즘 2023. 3. 13. 17:54
사용자에게 입력받는 함수로는 Scanner만 알고 있었기 때문에 처음엔 1000번 'A+B'와 동일하게 작성하게 제출했습니다. import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); for(int n = 0; n < t; n++) { int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a+b); } } } Scanner와 System.out.println()을 사용하면 시간 초과로 15552번 문제를 넘어갈 수 없습니다. 이를 해결하기 위해서는 Buff..
-
[백준 알고리즘/Java] 2480번 주사위 세개IT Study/백준 알고리즘 2023. 3. 13. 15:15
Math 함수를 사용하지 않고, if문을 활용하여 풀기 위해 많은 코드를 작성하였습니다. import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a, b, c; a = sc.nextInt(); b = sc.nextInt(); c = sc.nextInt(); if(a==b && b==c) { System.out.println(10000 + a*1000); } else if (a==b) { System.out.println(1000 + a*100); } else if (b==c) { System.out.println(1000 + b*100); } ..