N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요.
(첫번째 수는 무조건 출력)
[입력 설명]
첫줄에 자연수 N이 주어진다.
두번째 줄부터 N개의 정수가 주어진다.
[출력 설명]
자신의 바로 앞 수보다 큰 수만 한 줄로 출력한다.
첫번째 인덱스로 answer를 초기화하고 배열을 돌면서 i와 i-1 위치의 값을 비교하고, 앞의 수보다 더 크면 answer 배열에 push한다.
function solution(arr){
let answer = [arr[0]];
for(let i=1;i<=arr.length;i++){
if(arr[i]>arr[i-1]){
answer.push(arr[i])
}
}
return answer
}
let arr = [7,3,9,8,6,12]
console.log(solution(arr))
선생님이 N(1<=N<=1000)명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질때
맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요.
(앞에 서 있는 사람들보다 크면 보이고,작거나 같으면 보이지 않습니다.)
[입력 설명]
첫줄에 정수 N이 주어진다.
두번째 줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
[출력 설명]
선생님이 볼 수 있는 최대 학생수.
가장 큰 키를 저장할 비교용도의 변수 maxHeight에 배열을 돌면서 지금까지 중 가장 키가 큰 값을 저장하고 answer를 +1하며 카운팅,
뒤로 가면서 현재 가장 큰 키보다 더 큰 값이 나오면 maxHeight를 변경하고 카운팅하며 비교를 이어감.
function solution(arr){
let answer = 0;
let maxHeight = 0;
for(height of arr){
if(height > maxHeight){
maxHeight = height
answer++
}
}
return answer
}
let arr = [130,135,148,140,145,150,150,153]
console.log(solution(arr))
A,B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고,B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다.
가위=1, 바위=2, 보=3
ex)N=5이면
[회수|1|2|3|4|5][A정보|2|3|3|1|3]
[B정보|1|1|2|2|3][승자|A|B|A|B|D]
두 사람의 각 회의 가위,바위,보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요.
[입력 설명]
첫줄에 게임횟수 N이 주어진다.(5)
두번째 줄에 A가 낸 가위,바위,보 정보가 N개 주어진다(1,2,3,1,2)
세번째 줄에 B가 낸 가위,바위,보 정보가 N개 주어진다(3,2,1,3,2)
[출력 설명]
각 줄에 각 회의 승자를 출력,비겼으면 D를 출력(B,D,A,B,D)
A가 이기는 케이스,비기는 케이스를 조건문으로 지정하고 그 외의 케이스는 전부 B가 이기는 케이스로 지정.
[A가 이기는 케이스]
A B
1 3
2 1
3 2
function solution(a,b){
let answer = [];
for(let i=0;i<a.length;i++){
if(a[i]===b[i]){
answer.push('D')
}else if(a[i]===1 && b[i]===3){
answer.push('A')
}else if(a[i]===2 && b[i]===1){
answer.push('A')
}else if(a[i]===3 && b[i]===2){
answer.push('A')
}else{
answer.push('B')
}
}
return answer
}
let a = [1,2,3,1,2]
let b = [3,2,1,3,2]
console.log(solution(a,b))
연산을 이용해서 할 수도 있다
[A가 이기는 케이스]
A B
1 3 === -2
2 1 === 1
3 2 === 1
=> else if 구문을 아래와 같이 사용할 수 있음
else if(a[i]-b[i]===-2 || a[i]-b[i]===1 ) answer.push('A')