문제 : 출처 : https://www.acmicpc.net/problem/2741 (백준 온라인 저지)

실패한 코드(Timeout)

간단한 문제이지만 javascript로 위의 코드를 수행했더니 Timeout이 발생하였습니다. 아무래도 처리시간이 생각보다 긴 모양입니다. 처리시간을 단축시키기 위해 다음과 같은 풀이법을 세웠습니다.

1. for문을 쓰지 않기

입력값을 랜덤으로 받는 이상 for문을 안쓰고 처리하기에는 힘들어보였습니다. 물론 javascript 문법과 알고리즘에 미숙한 이유도 있습니다.

2. console.log를 1번만 쓰기 

console.log 메소드 처리속도가 생각보다 느릴수도 있겠다는 생각이 들었습니다. 위 코드에서는 입력값만큼 console.log 메소드를 호출하므로 console.log 메소드 처리속도가 느리다면 전체 코드 처리 속도가 상당히 늦어질 것입니다. 그래서 console.log를 1번만 호출하여 처리 속도가 달라지는지 확인할 필요가 있었습니다.

console.log 메소드 처리속도가 느리다는 가설이 맞는지 확인하기 위해 코드를 아래와 같이 작성하였습니다. console.log 메소드를 1번만 호출하기 위해서는 버퍼에 출력할 내용을 전부 담아야 합니다. 그래서 for문을 이용해 출력해야할 데이터를 버퍼에 전부 담은 다음 console.log 메소드를 1번만 호출하였습니다.

성공한 코드

stdoutArr.push(`${i}\n`);

배열에 정수와 개행을 담습니다. 해당 for문 수행이 끝나면 배열의 각 요소에는 정수와 개행이 포함됩니다.

console.log(stdoutArr.join(""));

배열의 각 요소를 하나로 합친 문자열을 출력합니다. 이 때 구분자는 빈 문자열로 지정합니다.

다행히도 위 코드는 성공하였습니다. 앞으로 처리 속도가 중요한 코드를 풀 때는 console.log 도 한 번 살펴봐야겠습니다.

 

 

'Programing > Baekjoon 문제 알고리즘(node.js)' 카테고리의 다른 글

1330번 두 수 비교하기  (0) 2022.02.24
10171번 고양이  (0) 2022.02.24
10172번 개  (0) 2022.02.24
10430번 나머지  (0) 2022.02.24
2438번 별 찍기  (0) 2022.02.24
Posted by englishmath
,

출처 : https://www.acmicpc.net/problem/10172 (백준 온라인 저지)

정답 코드

말 그대로 개를 출력하면 되는 문제이며 한 줄 단위로 끊어서 작성하시면 쉽게 풀 수 있습니다. 단 javascript에서 이스케이프(\)를 출력할려면 \\로 작성하셔야 하며 싱글쿼터, 더블쿼터를 출력하실려면 문자열을 출력할 쿼터와 다른 쿼터로 감싸셔야 합니다. 정리하면 다음과 같습니다.

\ -> "\\"

" -> '"'

' -> "'"

 

'Programing > Baekjoon 문제 알고리즘(node.js)' 카테고리의 다른 글

10171번 고양이  (0) 2022.02.24
2741번 N 찍기  (0) 2022.02.24
10430번 나머지  (0) 2022.02.24
2438번 별 찍기  (0) 2022.02.24
2739번 구구단  (0) 2022.02.24
Posted by englishmath
,

출처 : https://www.acmicpc.net/problem/10430 (백준 온라인 저지)

성공한 코드

문제를 그대로 코드로 옮기면 됩니다. 수학 공식에 빠삭하다면 좀 더 간략하게 작성할 수도 있을 것입니다. 일단 이전 코드에 비해 달라진 부분만 설명드리겠습니다.

let [A,B,C] = stdinNumbers.map(input => {
        return parseInt(input);
})

입력값 3개를 정수로 변환하여 받는 코드입니다. 기존에 작성했던 코드로는 입력값이 많아질수록 코드줄이 늘어나는 구조이므로 이번에 새롭게 수정하였습니다. 문자열 인자가 들어있는 배열에서 map 메소드를 호출한 후 각 요소를 정수로 바꾸어 배열로 반환하도록 하였으며 이 때 반환된 배열의 각 요소들이 A,B,C 변수에 저장됩니다.

 

'Programing > Baekjoon 문제 알고리즘(node.js)' 카테고리의 다른 글

2741번 N 찍기  (0) 2022.02.24
10172번 개  (0) 2022.02.24
2438번 별 찍기  (0) 2022.02.24
2739번 구구단  (0) 2022.02.24
9498번 시험 성적  (0) 2022.02.24
Posted by englishmath
,