본문 바로가기

백준/JavaScript

[JS] 백준 1427번 소트인사이드

728x90

 

오늘은 가족들 도와줄 것이 있어서 하루종일 밖에 있었더니

너무 졸려서 집 오자마자 기절해서 잤다(침 흘리면서 잔 건 비밀...).

 

 

문제

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

이 문제는 C++에서도 풀었던 문제이다 ㅎㅎ.

공백 없이 입력이 오면 그 수들을 내림차순으로 정렬하면 되는 문제이다.

 

그리고 어제는 새벽이라 너무 피곤해 머리가 안 돌아가서 그런지 어떻게 실행하는지 이해가 안 갔는데 엄청 간단했다...ㅎㅎ(역시 잠을 자야...) 그냥 input.txt 파일을 만들어주고 코드에 파일 주소를 '/dev/stdin' 대신 'input.txt'라고 작성하면 된다.

 '/dev/stdin'는 백준에 제출할 때 'input.txt' 대신 적어주어야 한다. 그렇게 코드를 작성하고 cmd에서 해당 파일로 이동하여 js 파일을 실행시켜 주면 결과값이 출력된다.

 

 

 

해당 블로그를 참고하여 코드를 공부하고 내가 따로 작성해보았다.

const fs = require('fs');

// 백준에 제출할 때 써야하는 것
//const readFileSyncAdress = '/dev/stdin';

const readFileSyncAdress = 'input.txt';

let input = fs.readFileSync(readFileSyncAdress).toString().trim();
function solution(input){
    return String(input).split('').sort((a,b)=>b-a).join('');
}

console.log(solution(input));
[참고] https://junghyeonsu.tistory.com/188

 

 

오호 이렇게 하니 cmd에 알맞게 출력된다 ㅎㅎ

코드를 설명해 보자면 input.txt를 한 줄로 입력받고, input을 매개변수로 받는 solution 함수를 만들어 공백 없이 하나씩 잘라 내림차순으로 정렬하고 공백없이 붙인 문자열을 리턴해준다.

 

이제 'input.txt'를 '/dev/stdin'로 바꾼 코드를 제출해 주면~~~~

 

 

성공!!!!

 

 

자바스크립트... 좀 재밌는 것 같기도..? ㅎ

 

 

뭔가 하다 보니 자바스크립트는 자바랑 비슷한 것 같기도 하고 파이썬이랑 비슷한 것 같기도 하고 GO랑 비슷한 것 같기도 하다(다른 언어지만...ㅎㅎ).

 

 

 

자바스크립트 마스터 가자~~~~

나중에 웹사이트도 하나 만들어봐야겠다.

 

 

 

- join() 함수는 배열의 모든 요소를 연결해 하나의 문자열로 만든다.

[참고] https://yeoncoding.tistory.com/46

 

- 내가 참고한 분이 작성한 코드에는 Number()가 있는데 이건 문자열을 숫자로 변환하는 함수이다. 반대로 String()은 숫자를 문자열로 변환하는 함수다.

[참고] https://www.codingfactory.net/10392

728x90