/*
문제 : Given an odd integer N, calculate the sum of all the odd integers between 1 and N inclusive.
입력 : First line of the input contains T, the number of test cases. Each test case contains a single integer N. N is between 1 and 100.
출력 : For each test case output the value 1+3+….+N.
*/
// 답안
// let fs = require('fs');
// let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n').map(x => +x);
let inputs = "10\n1\n3\n5\n7\n9";
let input = inputs.trim().split("\n").map(x => +x);
for(let i = 1; i <= input.length-1; i++){
let num = input[i]
let result = 0;
for(let j = 1; j <= num; j++){
if(j%2 !== 0){
result += j
}
}
console.log(result);
}
💡 새로 알게된 사실
처음 9713번 문제를 풀 때, result를 for문 바깥에 두었다.
let inputs = "10\n1\n3\n5\n7\n9"; let input = inputs.trim().split("\n").map(x => +x); let result = 0; //이런식으로! for(let i = 1; i <= input.length-1; i++){ let num = input[i] let result = 0;
이런식으로 코드가 진행되면 for문이 돌아가면서 result값이 '0'으로 '초기화'되지 않고 for문의 동작에 따라서 값이 누적된다.
ex) 1,5(1+(1+3))...
그러나 풀이처럼 for문 안으로 들어오는 경우 매 동작마다 result값이 '0'으로 시작하게 된다.
도움을 주신 철진님, 현재님 너무 감사합니다ㅜㅜ
/*
문제 : 두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오.
입력 : 두 정수 A와 B가 주어진다.
출력 : 첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다.
둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다.
*/
// let fs = require('fs');
// let input = fs.readFileSync('/dev/stdin').toString().split(' ').map(x => +x);
let inputs = '8 14';
let input = inputs.trim().split(' ').map(x => +x);
let A = input[0]; // 8
let B = input[1]; // 14
let arr = [];
// 빈 배열 생성
if(A < B){
console.log(B - A -1);
for(let i = A + 1; i < B; i++){
arr.push(i);
// 배열에 하나씩 입력
}
}else if(B < A){
console.log(A - B -1);
for(let i = B + 1; i < A; i++){
arr.push(i);
}
}else{
console.log(0);
}
console.log(arr.join(' '));
// 배열을 ,로 나눠서 숫자로 나타냄
/*
문제 : 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
입력 : 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
출력 : 두 번째로 큰 정수를 출력한다.
*/
// 답안
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split(' ').map(x => +x);
// let inputs = "40 20 10";
// let input = inputs.trim().split(" ").map(x => +x);
console.log(input.sort((a,b)=>a-b)[1]);
// sort 함수를 통해 오름차순으로 값을 바꾼 뒤 인덱스 1번 값을 출력.
마치며
저번주에 어려워 풀지 못했던 문제를 풀고 나니 너무 후련하고 뿌듯했다 🥳