[Node.js] 백준#2752 : 세수정렬

전인혁·2022년 5월 24일
1

백준 Algorithm

목록 보기
1/5
post-thumbnail
post-custom-banner

문제 분류

정렬

문제

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

동규는 세수를 하다가 정렬이 하고싶어졌다.

숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다.

숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.


입력
숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.

출력
제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.


예제 입력 1

3 1 2

예제 출력 1

1 2 3

Solution

  • 2중 for loop를 사용하여 첫 번째 원소와 다음 원소를 각각 비교한다. 만약, 다음 원소가 현재 원소보다 작다면, 현재 원소와 다음 원소의 자리를 바꾼다.

  • 모든 원소를 다 비교했다면 정렬된 배열을 return 한다.

  • Solution()에서 배열의 원소들을 합친 뒤, console에 출력한다.


코드

// 입력 모듈 "fs" 불러오기
const fs = require("fs");
const input = fs
  .readFileSync("./dev/stdin")
  .toString()
  .split(" ")
  .map((el) => parseInt(el));

// 정렬 함수 구현
function sorting(arr) {
  let tmp = 0;

  for (let i = 0; i < arr.length; i++)
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i] > arr[j]) {
        tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
      }
    }
  return arr;
}

// Solution 함수
const Solution = (input) => {
  let answer = sorting(input).join(" ");
  console.log(answer);
};

// Solution 실행
Solution(input);
profile
Front-end Developer
post-custom-banner

0개의 댓글