오답 노트... 두 번째 이야기
나의 오답 노트 작성.. 여기 있는 것들은 대체로 이해가 가지만 좀 만 변형해서 나온다면 어떨까나..?(땀 좀 흘리겠습니다..)
첫 번째 문제
function solution(arr) {
let answer = [];
let sum = 0, min = 1000;
for(let x of arr) {
if(x % 2 ===1) { // arr 배열 중 2를 나눴을 때 1이 되는 값 77, 41, 53, 85
sum += x; // 나온 값 더하기 256
if(x < min) min = x;
}
}
answer.push(sum); // sum = 256
answer.push(min); // min = 41
return answer; // 256, 41
}
arr = [12, 77, 38, 41, 53, 92, 85];
console.log(solution(arr));
두 번째 문제
function solution(arr) {
let answer = arr;
let sum = answer.reduce((a,b) => a + b, 0);
for(let i=0; i<8; i++) { // i는 7까지
for(let j=i+1; j<9; j++) { // j는 8까지
if((sum - (answer[i] + answer[j])) == 100) { // sum 합 한 값 140에 각 배열 중 합 한 값을 뺏을 때 100이 되는 것
answer.splice(j, 1); // 15 j에서 처음으로 나오는 값
answer.splice(i, 1); // 25 i에서 처음으로 나오는 값
}
}
}
return answer;
}
let arr = [20, 7, 23, 19, 10, 15, 25, 8, 13];
console.log(solution(arr));
세 번째 문제
function solution(s, t) {
let answer = s.split(t).length; // split 문자열에서 원하는 값을 추출하여 배열로 반환 t는 'a'이므로 'j', 'v', 'scriptre', 'ctvue'
return answer-1; // 나온 갯수에서 -1 = 3 답은 3
}
let str = "javascript react vue";
console.log(solution(str, 'a'));
네 번째 문제
function solution(s) {
let answer = "";
for(let x of s) { // s = StuDY인데 이걸 x에 대입
if(x === x.toUpperCase()) answer += x.toLowerCase(); // x중 대문자 인 것이 존재하면 소문자로 변환
else answer += x.toUpperCase(); // 아니면 또 대문저로 전환
}
return answer; // 답은 sTUdy
}
console.log(solution(StuDY));
다섯 번째 문제
function solution(s) { // s 는 ["teacher", "time", "student", "beautiful", "good"];
let answer = "", max = Number.MIN_SAFE_INTEGER;
for(let x of s) { // s를 x에 대입
if(x.length > max) { // x 갯수 5개이며, 5 > max일 때
max = x.length; // max는 5이다
answer = x; // 5 이상중 제일 문자가 많은 것
}
}
return answer; // 답은 beautiful
}
let str = ["teacher", "time", "student", "beautiful", "good"];
console.log(solution(str));
여섯 번째 문제
function solution(s) { // s는 study
let answer;
let mid = Math.floor(s.length/2) // s갯수는 5개 그중 5/2를 하고 Math.floor는 소수점을 버린다. 그러면 2
if(s.length%2===1) answer = s.solution(mid, mid-1); // s.length은 5이며 5에서 2를 나누고 1이 있는 값이 있다면 mid는 2, mid-1은 1
else answer = s.subString(mid-1, mid+1);
return answer; // 1은 t, 2는 u 답은t,u
}
console.log(solution("study"));
일곱 번째 문제
function solution(s) { // s는 ksekkset
let answer = "";
for(let i=0; i<s.length; i++) { // s.length 갯수는 8이며 <는 7까지임을 나타냄
if(s.indexOf(s[i]) === i) answer+=s[i]; // indexOf()는 특정 문자 위치를 찾고 숫자로 반환한다. s[i]) === i는 서로 대입했을 때 s[i] 그 값을 점점 더한다.
}
return answer; // 답은 kset
}
console.log(solution("ksekkset"));
여덟 번째 문제
function solution(s) {
let answer;
answer = s.filter(function(v,i) {
return s.indexOf(v) === i;
});
return answer;
}
let str = ["good", "time", "good", "time", "student"];
console.log(solution(str));
위 문제와 비슷합니다.
아홉 번째 문제
function solution(s) {
let answer;
let stack = [];
for(let x of s) {
if(x === ')') {
while(stack.pop() !== '(');
}
else stack.push(x);
}
answer = stack.join('');
return answer;
}
let str = "(A(BC)D)EF(G(H)(IJ)K)LM(N)";
console.log(solution(str));
사실 아직 잘 모르겠습니다..
열 번째 문제
function solution(n, k) {
let answer;
let queue = Array.from({length : n}, (v, i) => i+1);
while(queue.length) {
for(let i=1; i<k; i++) queue.push(queue.shift());
queue.shift();
if(queue.length === 1) answer = queue.shift();
}
return answer;
}
console.log(solution(8, 3));
사실 아직 잘 모르겠습니다..
'EX' 카테고리의 다른 글
세 번째 오답노트! (1) | 2022.10.21 |
---|---|
아마도..? 꼴찌의 오답 노트 이야기 (5) | 2022.10.01 |
댓글