목록Algorithm (5)
행복을 담는 블로그

가끔 백준 사이트 문제를 풀다보면 Scanner로 입력값을 받을 경우, 시간 초과가 나는 경우가 있어서 BufferedReader와 StringTokenizer 사용법에 대해서 간단하게 정리해보고자 한다.(맨날 버퍼드리더 쓰는 법 까먹어서 내가 보려고 쓰는 글...)Scanner v.s. BufferedReader의 차이1. Scanner가장 처음 입력을 받기 위해 알게된 Scanner 클래스이다.java.util에 속해있는 클래스이다.import java.util.Scanner;public class Input { public static void main(String[] args) { // 1. java.util의 Scanner 클래스를 import 해와서 선언하기 Sc..
EOF란 무엇인가?End of File의 약자로, 데이터 소스로부터 더이상 읽을 데이터가 없다는 내용이다.EOF 사용 방법 2가지Scanner와 BufferedReader 두 가지의 방법이 존재한다.이 문제를 연습해볼 수 있는 대표적인 문제가 바로 BOJ10951(A + B - 4)와 BOJ10952(A + B - 5) 문제가 있다.Scanner 클래스마지막 입력이 들어오지 않을 때까지 입력 받기: hasNext() 메소드 사용하기: 입력된 다음 토큰이 있다면 true를 반환하고, 그렇지 않을 경우 false를 반환한다.Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int A = sc.nextInt(); ..

삽입 정렬을 이용하여 문제를 풀어야겠다. 우선 숫자 -> 문자열로 : toString 문자열 split 이후 -> 배열로 만들기 : map 배열 안 문자 크기 비교하여 내림차순으로 정렬 : 이중루프 사용 배열을 다시 풀어서 문자열로 만들기 : join 문자열 -> 정수로 만들기 : parseInt function solution(n) { // 삽입 정렬로 풀기 // n : 숫자 118372 -> 8,7,3,2,1,1 //숫자를 배열로 : [8,7,3,2,1,1] //map을 돌려서 배열 const newArr = n.toString().split('').map(Number); console.log(newArr); // [1,1,8,3,7,2] // 삽입 정렬 // 이중 루프 for(let ..

오늘 이 문제를 풀었다. 그 동안에는 배열이 주어졌고, 해당 배열 내의 숫자 값들을 합하거나 평균을 구하는 식의 문제가 주었다. 하지만 이 문제는 배열이 아닌 숫자가 주어졌기에 숫자 각각의 index를 지정하여 더할 수가 없었다. 따라서 해당 문제를 푸는 로직을 먼저 글로 작성을 하여 생각해 보았다. 1. 숫자 -> 배열로 먼저 만들기 숫자를 배열로 만드는 방법부터 살짝 막막했다. 약간의 서칭과 함께 'split() 메소드' 라는 힌트를 얻어 다시 진행하였다. 2. 배열을 만들기 위해 숫자 -> 문자열로 우선 바꾼다. const str = String(n); 3. 문자열을 split("")을 이용하여 하나하나를 쪼갠다. const newArr = str.split('') 4. 생성된 배열을 for문을 이..

// 풀이 1 function solution(numbers) { let array = numbers; const result = array.reduce(function add(a,b){ return a+b; }) return result/array.length; } // 풀이 2 function solution(numbers) { var sum = 0; for (i=0; i a+b); // 3️⃣ 변수 설정하기 const arr = [1, 2, 3]; const result = arr.reduce(function add(sum, currValue) { return sum + currValue; }, 0); 2. reduce () 메서드로 배열의 평균 구하기 : reduce() 함수로 배열의 합을 구한 ..