(1).백준 24198 Muffinspelet는 음식을 분배하는 과정으로
공평함을 위해 첫 사람이 둘로 나누면 다른 사람이 그 중 하나를 먹고
다시 그 음식을 둘로 나누는 방식으로 진행된다.
당연한 이야기지만 상대방이 선택권을 가지기 때문에
최대한 동일한 크기로 만드는 것이 중요하고
정수 단위로만 쪼갤 수 있기 때문에 1,3,5의 경우에는
1/0 , 2/1, 3/2의 형태로 쪼개진다.
모든 음식이 사라질 때 까지 돌려야 하기 때문에
음식의 잔량인 input이 0이 될 때 까지 while문으로 돌렸으며
순번을 확인하기 위해 switching을 통해 턴을 구분했다.
switch로 하고 싶었지만 let switch가 되지 않았기 때문에 (switch문이 있어서)
switching으로 할 수 밖에 없었다.
let input = 13
let Alf = 0
let Beara = 0
let switching = true
while(input){
let half = Math.round(input/2)
input -= half
if(switching){
Beara += half
}
else{
Alf += half
}
switching = !switching
}
console.log(Alf,Beara)
(2).백준 5356 Triangles는 삼각형 모양으로 문자열을 출력하는 문제로
별찍기와 살짝 유사한 느낌이라고 볼 수 있다.
다른 점이라면 하나의 결과물이 아닌 여러개의 테스트케이스가 있고
Z에서 A로 넘어가는 반복이 있다는 부분이다.
출력은 repeat을 사용해서 처리했지만
A->Z->A로 넘어가는 순환부분은 아스키코드를 사용해 숫자로 변경한 다음
숫자에서 %26을 통해 초기화해버리는 방식을 선택했다.
@(String.fromCharCode((startStr.charCodeAt()-66+j)%26 +65)
let input = `3
5 A
3 Z
4 C`.split('\n')
let result = []
for(let i = 1 ; i < input.length ; i++){
let [amount, startStr] = input[i].split(' ')
let triangles = []
for(let j = 1 ; j <= Number(amount) ; j++){
triangles.push(String.fromCharCode((startStr.charCodeAt()-66+j)%26 +65).repeat(j))
}
result.push(triangles.join('\n'))
}
console.log(result.join('\n\n'))
'회고' 카테고리의 다른 글
[취업준비일지] - 89 - 원티드 인턴십 12일차 (0) | 2023.01.17 |
---|---|
[취업준비일지] - 88 (0) | 2023.01.16 |
[취업준비일지] - 86 (0) | 2023.01.14 |
[취업준비일지] - 85 - 원티드 인턴십 11일차 (0) | 2023.01.13 |
[취업준비일지] - 84 - 원티드 인턴십 10일차 (0) | 2023.01.12 |