문제2: JAVA독과 함께!
15147 단어 눈떠보니 코딩테스트 전날코딩테스트눈떠보니 코딩테스트 전날
문제
내 친구들이 징검다리를 건널꺼야! 하지만 징검다리는 버틸 수 있는 내구도에 한계가 있지!
내 친구들의 몸무게, 돌의 내구도, 친구들의 점프력을 고려하여 내 친구 루비독, 피치피독, 씨-독, 코볼독이
각각 다리를 건널 수 있는지 알아봐줘! 친구들은 더 추가될 수도, 덜 건널 수도 있어!
- 각 돌들이 얼마나 버틸 수 있는지 배열로 주어진다.
- 내구도 0까지는 독의 몸무게를 버틸 수 있습니다. 0 미만이 되면 독은 살아남지 못합니다.
- 각 독들의 개인정보가 객체 배열로 주어집니다. 개인정보느 보호되지 않습니다. 객체 생성을 위해 별도의 클래스가 필요합니다.
메인 클래스 밖에 아래 크래스를 추가해 주세요.
class Dog {
constructor(name, age, jump, weight) {
this.name = name;
this.age = age;
this.jump = jump;
this.weight = weight;
}
}
const dogList = [
new dog("루비독", "95년생", "3", "4"),
new dog("피치독", "95년생", "3", "3"),
new dog("씨-독", "72년생", "2", "1"),
new dog("코볼독", "59년생", "1", "1"),
]
- 각 돌에 독들이 착지할 때 돌의 내구도는 몸무게 만틈 줄어든다.
- [1, 2, 1, 4] 각 돌마다 몸무게 1인 독 1마리 2마리 1마리 4마리의 착지를 버틸 수 있다.
- 독들의 점프력이 각자 다르다.
- 점프력이 2라면 2칸씩 점프하여 착지한다.
- 각 독들은 순서대로만 다리를 건넌다.
예제
예제1
const stoneDurability = [1, 2, ,1, 4]
ouput : ["씨-독"]
예제2
const stoneDurability = [5, 3, 4, 1, 3, 8, 3]
output : ["루비독", "씨-독"]
풀이
class Dog {
constructor(name, age, jump, weight) {
this.name = name;
this.age = age;
this.jump = jump;
this.weight = weight;
}
}
function question() {
// 돌의 내구도를 배열로 만들어준다.
const stoneDurability = [1, 2, 1, 4];
// 독들의 정보를 설정해준다.
const dogList = [
new Dog('루비독', '95년생', '3', '4'),
new Dog('피치독', '95년생', '3', '3'),
new Dog('씨-독', '72년생', '2', '1'),
new Dog('코볼독', '59년생', '1', '1')
];
return func(stoneDurability, dogList);
}
function func(stoneDurability, dogList) {
// 다리를 건널 수 있는 독
let list = [];
dogList.forEach((dog) => {
let position = -1; // 현재 독의 위치 (초기 -1)
let check = false; // 독이 다리를 건넜는지 확인
// 독의 위치가 다리를 건널 때 까지 수행
while (position < stoneDurability.length) {
// 독의 점프력을 독위치에 더 해준다.
position += parseInt(dog.jump);
// 현재 독의 위치에 있는 돌의 내구도를 변수로 저장
let stone = stoneDurability[position];
// 독의 위치가 다리를 건넜는지 확인
if (stoneDurability.length < position) {
check = true;
break;
} else {
// 독의 위치의 돌의 내구도를 독의 무게 만큼 감소
stoneDurability[position] = stone - dog.weight;
}
// 돌의 내구도가 독의 무게만큼 감소된 값이 0보다 작을 때 멈춤(커야지 다리를 건널 수 있다.)
if (0 > stone - dog.weight) {
break;
}
}
// 독이 다리를 건넜으면 list에 추가
if (check) {
list.push(dog.name);
}
});
return list;
}
Author And Source
이 문제에 관하여(문제2: JAVA독과 함께!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@gihum/문제2-JAVA독과-함께
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
내 친구들이 징검다리를 건널꺼야! 하지만 징검다리는 버틸 수 있는 내구도에 한계가 있지!
내 친구들의 몸무게, 돌의 내구도, 친구들의 점프력을 고려하여 내 친구 루비독, 피치피독, 씨-독, 코볼독이
각각 다리를 건널 수 있는지 알아봐줘! 친구들은 더 추가될 수도, 덜 건널 수도 있어!
- 내구도 0까지는 독의 몸무게를 버틸 수 있습니다. 0 미만이 되면 독은 살아남지 못합니다.
메인 클래스 밖에 아래 크래스를 추가해 주세요.
class Dog {
constructor(name, age, jump, weight) {
this.name = name;
this.age = age;
this.jump = jump;
this.weight = weight;
}
}
const dogList = [
new dog("루비독", "95년생", "3", "4"),
new dog("피치독", "95년생", "3", "3"),
new dog("씨-독", "72년생", "2", "1"),
new dog("코볼독", "59년생", "1", "1"),
]
- [1, 2, 1, 4] 각 돌마다 몸무게 1인 독 1마리 2마리 1마리 4마리의 착지를 버틸 수 있다.
- 점프력이 2라면 2칸씩 점프하여 착지한다.
예제1
const stoneDurability = [1, 2, ,1, 4]
ouput : ["씨-독"]
예제2
const stoneDurability = [5, 3, 4, 1, 3, 8, 3]
output : ["루비독", "씨-독"]
풀이
class Dog {
constructor(name, age, jump, weight) {
this.name = name;
this.age = age;
this.jump = jump;
this.weight = weight;
}
}
function question() {
// 돌의 내구도를 배열로 만들어준다.
const stoneDurability = [1, 2, 1, 4];
// 독들의 정보를 설정해준다.
const dogList = [
new Dog('루비독', '95년생', '3', '4'),
new Dog('피치독', '95년생', '3', '3'),
new Dog('씨-독', '72년생', '2', '1'),
new Dog('코볼독', '59년생', '1', '1')
];
return func(stoneDurability, dogList);
}
function func(stoneDurability, dogList) {
// 다리를 건널 수 있는 독
let list = [];
dogList.forEach((dog) => {
let position = -1; // 현재 독의 위치 (초기 -1)
let check = false; // 독이 다리를 건넜는지 확인
// 독의 위치가 다리를 건널 때 까지 수행
while (position < stoneDurability.length) {
// 독의 점프력을 독위치에 더 해준다.
position += parseInt(dog.jump);
// 현재 독의 위치에 있는 돌의 내구도를 변수로 저장
let stone = stoneDurability[position];
// 독의 위치가 다리를 건넜는지 확인
if (stoneDurability.length < position) {
check = true;
break;
} else {
// 독의 위치의 돌의 내구도를 독의 무게 만큼 감소
stoneDurability[position] = stone - dog.weight;
}
// 돌의 내구도가 독의 무게만큼 감소된 값이 0보다 작을 때 멈춤(커야지 다리를 건널 수 있다.)
if (0 > stone - dog.weight) {
break;
}
}
// 독이 다리를 건넜으면 list에 추가
if (check) {
list.push(dog.name);
}
});
return list;
}
Author And Source
이 문제에 관하여(문제2: JAVA독과 함께!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@gihum/문제2-JAVA독과-함께
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Dog {
constructor(name, age, jump, weight) {
this.name = name;
this.age = age;
this.jump = jump;
this.weight = weight;
}
}
function question() {
// 돌의 내구도를 배열로 만들어준다.
const stoneDurability = [1, 2, 1, 4];
// 독들의 정보를 설정해준다.
const dogList = [
new Dog('루비독', '95년생', '3', '4'),
new Dog('피치독', '95년생', '3', '3'),
new Dog('씨-독', '72년생', '2', '1'),
new Dog('코볼독', '59년생', '1', '1')
];
return func(stoneDurability, dogList);
}
function func(stoneDurability, dogList) {
// 다리를 건널 수 있는 독
let list = [];
dogList.forEach((dog) => {
let position = -1; // 현재 독의 위치 (초기 -1)
let check = false; // 독이 다리를 건넜는지 확인
// 독의 위치가 다리를 건널 때 까지 수행
while (position < stoneDurability.length) {
// 독의 점프력을 독위치에 더 해준다.
position += parseInt(dog.jump);
// 현재 독의 위치에 있는 돌의 내구도를 변수로 저장
let stone = stoneDurability[position];
// 독의 위치가 다리를 건넜는지 확인
if (stoneDurability.length < position) {
check = true;
break;
} else {
// 독의 위치의 돌의 내구도를 독의 무게 만큼 감소
stoneDurability[position] = stone - dog.weight;
}
// 돌의 내구도가 독의 무게만큼 감소된 값이 0보다 작을 때 멈춤(커야지 다리를 건널 수 있다.)
if (0 > stone - dog.weight) {
break;
}
}
// 독이 다리를 건넜으면 list에 추가
if (check) {
list.push(dog.name);
}
});
return list;
}
Author And Source
이 문제에 관하여(문제2: JAVA독과 함께!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gihum/문제2-JAVA독과-함께저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)