백준 - 파티가 끝나고 난 뒤

BooKi·2022년 4월 15일
0

백준

목록 보기
6/64
post-thumbnail

백준 - 파티가 끝나고 난 뒤

문제 설명

문제

파티가 끝나고 나면, 사람들은 누가 파티에 왔는지와 얼마나 많은 사람들이 왔는지를 궁금해한다. 

보통 파티는 매우 크게 열리기 때문에, 정확하게 몇 명이 참가했는지 알 수가 없다.

지난주 토요일에 상근이는 자신의 3학년 진학을 기념하면서 매우 성대한 파티를 열었다.

그리고, 상근이는 1m2당 몇 명의 사람이 있었는지 알고있다.

상근이의 파티는 정말 엄청난 규모였기 때문에, 대부분의 신문에도 기사가 실렸다. 

상근이는 서로 다른 5개의 신문을 보면서 그 기사에 적혀져있는 참가자의 수를 적었다.

상근이는 자신이 알고있는 참가자의 수가 정확하다고 생각한다. 

각 신문 기사에 실려있는 참가자의 수가 몇 명 만큼 잘못되어있는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 1m2당 사람의 수 L (1 ≤ L ≤ 10)과 파티가 열렸던 곳의 넓이 P (1 ≤ P ≤ 1000)가 주어진다.

둘째 줄에는 각 기사에 실려있는 참가자의 수가 주어진다. 106보다 작은 양의 정수 5개가 주어진다.

출력

출력은 첫째 줄에 다섯 개의 숫자를 출력해야 한다. 이 숫자는 상근이가 계산한 참가자의 수와  각 기사에 적혀있는 참가자의 수의 차이이다.

예제 입력 1

1 10
10 10 10 10 10

예제 출력 1

0 0 0 0 0

예제 입력 2

5 20
99 101 1000 0 97

예제 출력 2

-1 1 900 -100 -3

제출

처음에 예제 입력값을 보고 저런식으로 떼져서 들어오는건 어떻게 받아야 할까? 생각을 했다

fs로 입력을 받아오면 배열로 들어오니까 \n으로 먼저 두개의 배열을 받고 2중 배열 형태일테니까 그걸 이용해보기로 했다

const fs = require('fs')
var input = fs.readFileSync('/dev/stdin').toString().split('\n')

var people = Number(input[0][0])
var m2 = Number(input[0][1])

var all = people * m2
input[1].map(item => (console.log(Number(item)-all)))

이렇게 했는데 에러가 떠서 그냥 2중 배열을 또 split으로 풀어보았다

그리고 내가 map 함수를 잘 모르니까 잘 아는 for로 반복을 돌렸다

const fs = require('fs')
var input = fs.readFileSync('/dev/stdin').toString().split('\n')

var first = input[0].split(' ')
var second = input[1].split(' ')

var people = Number(first[0])
var m2 = Number(first[1])
var all = people * m2

for(i=0; i<5; i++){
    var num = Number(second[i])
    console.log(num-all)
}

그렇게 하니까 정답 처리가 되었다

그래서 map 함수가 틀렸나 확인을 하기위해 아래와 같이 작성을 해보았다

const fs = require('fs')
var input = fs.readFileSync('/dev/stdin').toString().split('\n')

var people = Number(input[0][0])
var m2 = Number(input[0][1])
var all = people * m2

for(i=0; i<5; i++){
    var num = Number(input[1][i])
    console.log(num-all)
}

하지만 이것도 틀렸다고 나왔다

그래서 입력값을 받는 부분에 문제인 것을 알았고 앞으로 여러줄을 받게되면 우선 줄로 분할한 다음

그다음 칸으로 분할해야겠다고 알게되었다

profile
성장을 보여주는 기록

0개의 댓글

관련 채용 정보