๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฌธ์ž์—ด ํƒ์ƒ‰, ๋น„๊ตํ•ด์„œ ๋ฌธ์ž์—ด๋กœ ๋ฆฌํ„ดํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

 

1. ๋ฌธ์ œ

์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฐ์†์œผ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž ๋ฐ”๋กœ ์˜ค๋ฅธ์ชฝ์— ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ž์—ด์„ ์••์ถ•ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ 1์ธ ๊ฒฝ์šฐ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

 

์ž…๋ ฅ์˜ˆ์ œ | KKHSSSSSSSE

์ถœ๋ ฅ์˜ˆ์ œ | K2HS7E

 

2. ์ ‘๊ทผ๋ฐฉ๋ฒ•

๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฌธ์ž์—ด ํƒ์ƒ‰ํ•ด์„œ ๋‘๊ฐœ์”ฉ ๋น„๊ตํ•ด์„œ countingํ•ด์ฃผ๊ณ  ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด์„œ ๋„ฃ์–ด์ค€๋‹ค. 

 

 

3. ๋ฌธ์ œ ํ’€์ด 

1. ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฌธ์ž์—ด์ด๋‹ค.

2. ๊ฐœ์ˆ˜๋ฅผ ์นด์šดํŒ…ํ•ด์„œ answer๋กœ ์ถœ๋ ฅํ•ด์•ผํ•œ๋‹ค.

3. -> ๋ฌธ์ž์—ด ๋‚ด ๋ฌธ์ž ๋‘๊ฐœ ๋น„๊ตํ•ด์„œ ๊ฐ™์œผ๋ฉด ์นด์šดํŒ… 

    -> ๋‹ค๋ฅธ ๊ฒฝ์šฐ answer์— ๋ฌธ์ž ๋ˆ„์ ํ•˜๊ณ 

    -> ๊ฐœ์ˆ˜๋„ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์„œ answer์— ๋ˆ„์ ํ•œ๋‹ค. (count > 1 ์ธ ๊ฒฝ์šฐ์—๋งŒ)

    -> ์นด์šดํŠธ๋Š” ์›๋ž˜๋Œ€๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค. 

function solution(str){
	let answer = "";
    let count = 1;
    for(let i=0; i<str.length; i++){
    	if(str[i] === str[i+1]{
        	count++;
        } else {
        	answer += str[i];
            answer += count.toString();
            count = 1;
        }
    }
    return answer;
}

let str = "KKHSSSSSSSE";
console.log(solution(str));
    

๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ 1์ธ ๊ฒฝ์šฐ ์ƒ๋žตํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. 

 

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

else์•ˆ์— ๋˜ if๋ฌธ์„ ์ž‘์„ฑํ•  ์ˆ˜๊ฐ€ ์žˆ์—ˆ๋‹ค!
function solution(str){
	let answer = ""; //์ถœ๋ ฅ์ด ๋ฌธ์ž์—ด๋กœ ๋‚˜์™€์•ผํ•˜๋‹ˆ๊นŒ
    let count = 1; //์ œ์ผ ์•ž์— ๋ฌธ์žํ•˜๋‚˜๋Š” ๊ธฐ๋ณธ์œผ๋กœ ์žˆ์œผ๋‹ˆ๊นŒ 1๋กœ ์ €์žฅํ•ด์ฃผ๊ธฐ
    for(let i=0; i<str.length: i++){
    	if(str[i] === str[i+1]){
        	count++;
        } else {
        	answer += str[i]; // answer์— ๋ฌธ์ž๋ˆ„์ ํ•ด์ฃผ๊ณ 
            if(count>1) answer += count.toString();
            // count๊ฐ€ 1๋ณด๋‹ค ํฌ๋ฉด ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์„œ answer์— ๋ˆ„์ 
            count = 1; // count๋Š” ๋‹ค์‹œ 1๋กœ ์ดˆ๊ธฐํ™”์‹œ์ผœ์ค€๋‹ค. 
          }
      }
      return answer;
}

let str = "KKHSSSSSSSE";
console.log(solution(str));

๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ 1์ธ๊ฒฝ์šฐ ์ƒ๋žตํ•˜๋ ค๋ฉด count ๊ฐ€ 1๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋งŒ ์ถœ๋ ฅํ•˜๋„๋กํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์จ์ฃผ์—ˆ๋‹ค. 

 

 

 

3. ์‚ฌ์šฉํ•œ ๊ฐœ๋…

Number.toString()

์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ

 

String(Number)

์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ

1. ๋ฌธ์ œ

ํ•œ ๊ฐœ์˜ ๋ฌธ์ž์—ด s์™€ ๋ฌธ์ž t๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๋ฌธ์ž์—ด s์˜ ๊ฐ ๋ฌธ์ž๊ฐ€ ๋ฌธ์ž t์™€ ๋–จ์–ด์ง„ ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

 

์ž…๋ ฅ์„ค๋ช… |

์ฒซ ๋ฒˆ์งธ ์ค„์— ๋ฌธ์ž์—ด s์™€ ๋ฌธ์ž t๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

์ž…๋ ฅ์˜ˆ์ œ | teachermode e

์ถœ๋ ฅ์˜ˆ์ œ | 1 0 1 2 1 0 1 2 2 1 0

 

*๋งŒ์•ฝ ๋ฌธ์ œ๋ฅผ ์ฝ๊ณ ๋„ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€๋ฉด, ์ž…๋ ฅ์˜ˆ์ œ์™€ ์ถœ๋ ฅ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด์„œ ์–ด๋–ป๊ฒŒ ๋‚˜์˜ค๋Š”๊ฑด์ง€ ์œ ์ถ”ํ•˜๋Š” ๊ฒƒ๋„ ๋ฌธ์ œํ•ด๊ฒฐ๋Šฅ๋ ฅ์ด๋‹ค. 

 

 

 

2. ์ ‘๊ทผ๋ฐฉ๋ฒ•

๋ฌธ์ž์—ด ์•ž์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰, ๋’ค์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰ ๋น„๊ตํ•ด์„œ ์ตœ์†Œ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ธฐ

 

๋ฐ˜๋ชฉ๋ฌธ์œผ๋กœ ๋ฌธ์ž์—ด ํ•˜๋‚˜์”ฉ ๋Œ๋ฉด์„œ ํƒ์ƒ‰

e๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ ์นด์šดํŒ…ํ•˜๋ฉด์„œ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 

๋ฐ˜๋Œ€๋กœ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋ฌธ์ž์—ด ํ•˜๋‚˜์”ฉ ๋Œ๋ฉด์„œ ํƒ์ƒ‰

e๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ ์นด์šดํŒ…ํ•˜๋ฉด์„œ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ๋น„๊ตํ•ด์„œ ์ตœ์†Œ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค. 

 

 

3. ๋ฌธ์ œํ’€์ด

e์—์„œ๋ถ€ํ„ฐ์˜ ๊ฐ€์žฅ ์งง์€ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฆฌํ„ดํ•ด์•ผํ•œ๋‹ค. 

answer๋ฅผ ๋ฐฐ์—ด๋กœ ๋„ฃ๊ณ , ๊ฐ’์„ ๋ฐฐ์—ด์— pushํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.

์ตœ๋Œ€๋ฌธ์ž์—ด์˜ ๊ธธ์ด 100์ด๋ฏ€๋กœ ๋ณ€์ˆ˜ p๋ฅผ ์ตœ๋Œ€๊ฐ’ 100์œผ๋กœ ์ž‘์„ฑํ•ด์ฃผ๊ธฐ๋กœ ํ•œ๋‹ค.

 

1. ๋ฌธ์ž e์—์„œ ์šฐ์ธก๋ฐฉํ–ฅ์œผ๋กœ์˜ ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ธฐ

for of ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋Œ๋ฉด์„œ ๋ฌธ์ž๊ฐ€ e๊ฐ€ ์•„๋‹ˆ๋ฉด p++์„ ํ•ด์ค€๋‹ค.

e์ด๋ฉด 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. 

์ด ๋ฐฉ๋ฒ•์€ ๋ฌธ์ž e์—์„œ ์šฐ์ธก๋ฐฉํ–ฅ์œผ๋กœ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•œ ๊ฒƒ์ด๋‹ค.

 

2. ๋ฌธ์ž e์—์„œ ์ขŒ์ธก๋ฐฉํ–ฅ์œผ๋กœ์˜ ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ณ  ๋น„๊ต

๋‹ค์‹œ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ฐ˜๋Œ€๋กœ ๋ˆ๋‹ค. 

๋ฐ˜๋Œ€๋กœ ๋Œ๋ฉด์„œ e์—์„œ ์ขŒ์ธก๋ฐฉํ–ฅ์œผ๋กœ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•œ๋‹ค. 

์ฆ‰, ์ขŒ์ธก์ด๋“  ์šฐ์ธก์ด๋“  ๋‘˜์ค‘์—์„œ ๊ฐ€์žฅ ๋” ์ž‘์€ ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๋„๋ก ํ•œ๋‹ค. 

 

function solution(str, e){
	let answer = [];
    let p = 100; // ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ตœ๋Œ€๊ฐ’ 100์œผ๋กœ ์„ค์ •ํ•ด์ค€๋‹ค. 
    for(x of str){
    	if(x === e){
        	p=0; // p๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค
            answer.push(p);
        } else {
        	p++;
            answer.push(p);
        }
    }
    p = 100; // ๋ฐ˜๋ณต๋ฌธ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋ณ€์ˆ˜ p ์›๋ž˜๋Œ€๋กœ ์ดˆ๊ธฐํ™”
    for(let i = str.length-1; i>=0; i--){
    	if(str[i] ===e){
        	p=0;
        } else {
        	p++;
            answer[i] = Math.min(answer[i], p);
            // ์ฒซ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋“ค์–ด์žˆ๋Š” p์™€ ํ˜„์žฌ answer[i]๋ฅผ ๋น„๊ตํ•ด์„œ ์ž‘์€ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
        }
     }
     return answer;
}

let str = "teachermode";
console.log(solution(str, 'e');

 

 

 

4. ์‚ฌ์šฉ๊ฐœ๋…

Math.min()

Math.min([value1[, value2[, )

์—ฌ๊ธฐ์„œ value๋Š” ์ˆซ์žํ˜•์ด์–ด์•ผํ•œ๋‹ค. 1๊ฐœ ์ด์ƒ์˜ ์ธ์ž๊ฐ’์ด ์ˆซ์žํ˜•์œผ๋กœ ๋ณ€ํ™˜์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ NaN ๋ฐ˜ํ™˜

๋ฌธ์ž์—ด์—์„œ ์ˆซ์ž๋งŒ ๊ฑธ๋Ÿฌ๋‚ด์„œ ์ถ”์ถœํ•˜๊ธฐ. ๋ฌธ์ž์—ด ์†์˜ ์ˆซ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ค˜์•ผํ•œ๋‹ค. 

 

๋ฌธ์ œ

๋ฌธ์ž์™€ ์ˆซ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๋ฉด ๊ทธ ์ค‘ ์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜์—ฌ ๊ทธ ์ˆœ์„œ๋Œ€๋กœ ์ž์—ฐ์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋งŒ์•ฝ “tge0a1h205er”์—์„œ ์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜๋ฉด 0, 1, 2, 0, 5์ด๊ณ  ์ด๊ฒƒ์„ ์ž์—ฐ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ฉด 1205์ด ๋ฉ๋‹ˆ๋‹ค. ์ถ”์ถœํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง€๋Š” ์ž์—ฐ์ˆ˜๋Š” 100,000,000์„ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ž…๋ ฅ์˜ˆ์ œ | g0en2T0s8eSoft

์ถœ๋ ฅ์˜ˆ์ œ | 208

 

 

์ ‘๊ทผ

๋ฌธ์ž์—ด ์•ˆ์—์„œ ๊ธฐํ˜ธ๋Š” ์ œ์™ธํ•˜๊ณ  ๋ฌธ์ž๋งŒ ๊ฒ€์‚ฌํ•˜์—ฌ ํŒฐ๋ฆฐ๋“œ๋กฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ

์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ด์„œ ์ˆซ์ž๋งŒ ๊ฑธ๋Ÿฌ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค. 

 

ํ’€์ด(1)

replace(/[^0-9]/g, ' ') -> ์ „์ฒด ์˜์—ญ์—์„œ 0-9๊นŒ์ง€๊ฐ€ ์•„๋‹Œ๊ฑธ ์ฐพ์•„๋ผ.

๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ parseInt()๋ฅผ ์‚ฌ์šฉํ•ด์„œ answer๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. 

๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— parseInt()๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. 

function solution(str){
            let answer;
            str = str.replace(/[^0-9]/g, '');
            answer = parseInt(str);
            return answer;
        }

let str = "g0en2T0s8eSoft";
console.log(solution(str));

 

ํ’€์ด(2)

isNaN(value) -> ์ˆซ์ž์ธ๊ฐ€ ์•„๋‹Œ๊ฐ€? ๋ฅผ ํ™•์ธํ•ด์„œ ๋ˆ„์ ํ•˜๋Š” ๋ฐฉ๋ฒ•

function solution(str){
	let answer = "";
    for(let x of str){
    	if(!isNaN(x)) answer+=x;
    }
    return parseInt(answer);
}

let str = "g0en2T0s8eSoft";
console.log(solution(str));

 

 

์‚ฌ์šฉํ•œ ๊ฐœ๋…

isNaN()

์ˆซ์ž์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ธฐ

isNaN(value)

์ˆซ์ž๊ฐ€ ์•„๋‹๊ฒฝ์šฐ true ๋ฆฌํ„ด, ์ˆซ์ž์ผ ๊ฒฝ์šฐ false ๋ฆฌํ„ดํ•œ๋‹ค. 

 

parseInt()

๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ 

parseInt(string)

string - ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•  ๋ฌธ์ž์—ด

ํšŒ๋ฌธ ๋ฌธ์ž์—ด = ํŒฐ๋ฆฐ๋“œ๋กฌ

ํšŒ๋ฌธ ๋ฌธ์ž์—ด(ํŒฐ๋ฆฐ๋“œ๋กฌ) : ์•ž์—์„œ๋ถ€ํ„ฐ ์ฝ์œผ๋‚˜ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฝ์œผ๋‚˜ ๊ฐ™์€ ๋ฌธ์ž์—ด.

 

๋ฌธ์ž์—ด ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ. ๋ฌธ์ž์—ด์— ์–ด๋– ํ•œ ์กฐ๊ฑด์„ ์ฃผ๊ณ  ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

 

1. ๋ฌธ์ œ

์•ž์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๋’ค์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋˜๋ฉด ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ฉด "YES", ์•„๋‹ˆ๋ฉด “NO"๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋‹จ ํšŒ๋ฌธ์„ ๊ฒ€์‚ฌํ•  ๋•Œ ์•ŒํŒŒ๋ฒณ๋งŒ ๊ฐ€์ง€๊ณ  ํšŒ๋ฌธ์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ, ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ŒํŒŒ๋ฒณ ์ด์™ธ์˜ ๋ฌธ์ž๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. 

 

์ž…๋ ฅ์˜ˆ์ œ | found7, time: study; Yduts; emit, 7 Dnuof

์ถœ๋ ฅ์˜ˆ์ œ | YES

 

 

2. ์ ‘๊ทผ๋ฐฉ๋ฒ•

ํšŒ๋ฌธ ๋ฌธ์ž์—ด์„ ํ’€์—ˆ๋˜ ๋ฐฉ๋ฒ•๊ณผ ๊ฐ™๋‹ค.

ํšŒ๋ฌธ ๋ฌธ์ž์—ด์€ ๋ฌธ์ž์—ด ์•ˆ์—์„œ ์ œ์ผ ์•ž๊ณผ ์ œ์ผ ๋์ด ๊ฐ™๋‹ค๋Š” ๋ง์ด๊ณ ,

์•ž์—์„œ๋ถ€ํ„ฐ ํ•œ๊ธ€์ž์™€ ๋’ค์—์„œ ๋ถ€ํ„ฐ ํ•œ๊ธ€์ž๋ฅผ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค. 

์•ŒํŒŒ๋ฒณ๋งŒ ๊ฐ€์ง€๊ณ  ํšŒ๋ฌธ ๊ฒ€์‚ฌ๋ฅผ ํ•ด์•ผํ•˜๋ฏ€๋กœ ๋ฌธ์ž์—ด์— ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. 

 

 

2. ๋ฌธ์ œ ํ’€์ด

1. ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ์†Œ๋ฌธ์ž or ๋Œ€๋ฌธ์ž๋กœ ํ†ต์ผ์‹œํ‚จ๋‹ค.

2. ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด ๋‚ด์— ์•ŒํŒŒ๋ฒณ์„ ์ œ์™ธํ•˜๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. 

2. for ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋Œ๋ฉด์„œ ์•ž์—์„œ๋ถ€ํ„ฐ ๋ฌธ์ž์™€ ๋’ค์—์„œ๋ถ€ํ„ฐ ๋ฌธ์ž ์ง์ง€์–ด์„œ ๋น„๊ตํ•ด์ค€๋‹ค. 

function solution(str){
	let answer = "YES";
    str = str.toLowerCase().replace(/[^a-z]/g, '');
    // ์ฒ˜์Œ๋ถ€ํ„ฐ ์†Œ๋ฌธ์ž๋‚˜ ๋Œ€๋ฌธ์ž๋กœ ํ†ต์ผ์‹œํ‚จ๋‹ค.
    // ์†Œ๋ฌธ์ž๋กœ ํ†ต์ผํ•˜๊ณ  ์—ฌ๊ธฐ๋‹ค๊ฐ€ replace๋ฅผ ํ•ด์„œ ์†Œ๋ฌธ์ž๋งŒ ๋‘๊ณ  ๋‚˜๋จธ์ง€ ์ œ๊ฑฐ -> ์ •๊ทœํ‘œํ˜„์‹ ์‚ฌ์šฉ
	// ์ •๊ทœํ‘œํ˜„์‹์—์„œ ^ ํ‘œ์‹œ -> ๋ถ€์ • 
	// [^a-z/g] -> ์†Œ๋ฌธ์ž a-z๊นŒ์ง€ ์•„๋‹Œ๊ฑธ ์ฐพ์•„๋ผ global -> ์ „์ฒด ์˜์—ญ์—์„œ
    let len = str.length;
    for(let i=0; i<len; i++){
    	if(str[i] !== str[len-i-1]) return "NO";
    }
    return answer;
}

let str = "found7, time: study; Yduts; emit, 7Dnuof";
console.log(solution(str));
function solution(str){
	let answer = "YES";
    str = str.toLowerCase().replace(/[^a-z]/g, '');
    let len = str.length;
    for(let i=0; i<len; i++){
    	if(str !== str.split('').reverse('').join('')) return "NO";
    }
    return answer;
}

let str = "found7, time: study; Yduts; emit, 7Dnuof";
console.log(solution(str));

 

3. ์‚ฌ์šฉ๊ฐœ๋…

 

์ •๊ทœํ‘œํ˜„์‹

์ •๊ทœ์‹์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• 1. ์ •๊ทœ์‹ ๋ฆฌํ„ฐ๋Ÿด์‚ฌ์šฉ (์Šฌ๋ž˜์‹œ / ๋กœ ๊ฐ์‹ธ๋Š” ํŒจํ„ด)

์ •๊ทœ์‹์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• 2. RegExp ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฌธ์ž์—ด ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ์ธ๋ฐ, ์–ด๋–ป๊ฒŒ ํƒ์ƒ‰ํ•ด์„œ ๋น„๊ตํ• ๊ฑด์ง€ ์ƒ๊ฐํ•ด๋ณด๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. 

 

1. ๋ฌธ์ œ

์•ž์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๋’ค์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํšŒ๋ฌธ ๋ฌธ์ž์—ด์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋˜๋ฉด ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ ๋ฌธ์ž์—ด์ด๋ฉด "YES", ํšŒ๋ฌธ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ฉด “NO"๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋‹จ ํšŒ๋ฌธ์„ ๊ฒ€์‚ฌํ•  ๋•Œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ž…๋ ฅ์˜ˆ์ œ | gooG

์ถœ๋ ฅ์˜ˆ์ œ | YES

 

 

2. ์ ‘๊ทผ๋ฐฉ๋ฒ• 

(1) ๋ฐฉ๋ฒ•

ํšŒ๋ฌธ ๋ฌธ์ž์—ด์€ ๋ฌธ์ž์—ด ์•ˆ์—์„œ ์ œ์ผ ์•ž๊ณผ ์ œ์ผ ๋์ด ๊ฐ™๋‹ค๋Š” ๋ง์ด๊ณ ,

์•ž์—์„œ๋ถ€ํ„ฐ ํ•œ๊ธ€์ž์™€ ๋’ค์—์„œ ๋ถ€ํ„ฐ ํ•œ๊ธ€์ž๋ฅผ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค. 

๋ฌธ์ž์—ด ๋‚ด์—์„œ 2๊ฐœ์”ฉ ์ง์„ ์ง€์–ด ๋น„๊ตํ•˜๊ฒŒ๋˜๋‹ˆ length/2๋กœ ๋ฒ”์œ„๋ฅผ ์ •ํ•ด ๋ฐ˜๋ณตํ•œ๋‹ค. 

 

(2) ๋ฐฉ๋ฒ•

๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ฐ˜๋Œ€๋กœ ๋’ค์ง‘์–ด์„œ ์›๋ž˜ ๋ฌธ์ž์—ด๊ณผ ๋น„๊ตํ•œ๋‹ค. 

 

3. ๋ฌธ์ œํ’€์ด(1) 

1. ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ์†Œ๋ฌธ์ž o r๋Œ€๋ฌธ์ž๋กœ ํ†ต์ผ์‹œํ‚จ๋‹ค. 

2. for๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ˆ๋‹ค.

3. ์•ž์—์„œ๋ถ€ํ„ฐ ๋ฌธ์ž์™€ ๋’ค์—์„œ๋ถ€ํ„ฐ ๋ฌธ์ž ์ง์„์ง€์–ด์„œ ํ™•์ธํ•˜๋ฏ€๋กœ

length/2๋กœ ๋‚˜๋ˆˆ ํšŸ์ˆ˜๋ฅผ ์ ์–ด์ค€๋‹ค.

4. ์กฐ๊ฑด ์•ž์—์„œ๋ถ€ํ„ฐ ๊ธ€์ž์™€ ๋’ค์—์„œ ๋ถ€ํ„ฐ ๊ธ€์ž ๋น„๊ตํ•ด์„œ ๋‹ค๋ฅด๋ฉด NO ๊ฐ™์œผ๋ฉด YES ๋ฆฌํ„ดํ•œ๋‹ค. 

 

function solution(str){
	let answer = "YES";
    str =  str.toLowerCase();
    let len = str.length;
    for(let i = 0; i<Math.floor(len/2); i++){
    	if(str[i] !== str[len-i-1]) return "NO";
    }
    return answer;
}

let str = "gooG";
console.log(solution(str));

 

3. ๋ฌธ์ œํ’€์ด(2)

๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. 

1. ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ์†Œ๋ฌธ์ž or ๋Œ€๋ฌธ์ž๋กœ ํ†ต์ผ์‹œํ‚จ๋‹ค.

2. ์›๋ž˜ ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด์„ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์€ ๊ฒƒ์„ ๋น„๊ตํ•ด์„œ ๊ฐ™์œผ๋ฉด YES ๋‹ค๋ฅด๋ฉด NO ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

3. ๋ฌธ์ž์—ด์„ String.split() ๋ฉ”์†Œ๋“œ๋กœ ํ•˜๋‚˜์”ฉ ๋–จ์–ดํŠธ๋ ค์„œ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ณ , 

Array.reverse() ๋ฉ”์†Œ๋“œ๋กœ ๋’ค์ง‘๋Š”๋‹ค. Array.join() ๋ฉ”์†Œ๋“œ๋กœ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ ๋‹ค. 

 

 

String.split()

๋นˆ๋ฌธ์ž์—ด์„ ๋„ฃ๊ณ  splitํ•˜๋ฉด ๋ฌธ์ž ์š”์†Œ๊ฐ€ ํ•˜๋‚˜์”ฉ ๋‚˜๋ˆ„์–ด์ ธ์„œ ๋ฐฐ์—ด์ด ๋œ๋‹ค.

๋ฐฐ์—ดํ™”๊ฐ€ ๋˜์–ด์•ผ reverse ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

Array.reverse()

๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ๋งŒ๋“œ๋Š” ๋ฉ”์†Œ๋“œ

 

Array.join()

๋ฐฐ์—ด์„ string์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

 

function solution(str){
	let answer = "YES";
    str = str.toLowerCase();
    if(str.split('').reverse('').join('') !== str) return "NO"
    return answer;
}

let str = "gooG";
console.log(solution(str));

 

 

ํƒ์ƒ‰๋ฌธ์ œ ์œ ํ˜• ์ค‘ ํ•˜๋‚˜์ธ ๋ด‰์šฐ๋ฆฌ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

๋ฌธ์ œ

N*N๊ฒฉ์žํŒ์ด ์ฃผ์–ด์ง€๊ณ  ๋†’์ด๊ฐ€ ์“ฐ์—ฌ์žˆ๋‹ค. ๊ฐ ๊ฒฉ์žํŒ์˜ ์ˆซ์ž ์ค‘ ์ž์‹ ์˜ ์ƒํ•˜์ขŒ์šฐ ์ˆซ์ž๋ณด๋‹ค ํฐ ์ˆซ์ž๋Š” ๋ด‰์šฐ๋ฆฌ ์ง€์—ญ์ด๋‹ค. ๋ด‰์šฐ๋ฆฌ ์ง€์—ญ์ด ๋ช‡ ๊ฐœ์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์ž. 

 

์ž…๋ ฅ์˜ˆ์ œ |

5 3 7 2 3

3 7 1 6 1

7 2 5 3 4

4 3 6 4 1

8 7 3 5 2

์ถœ๋ ฅ์˜ˆ์ œ |

10

 

์ ‘๊ทผ

1. ๊ธฐ์ค€์ ์„ ์ •ํ•˜๊ณ  ๋„ค ๋ฐฉํ–ฅ์„ ํƒ์ƒ‰ํ•œ๋‹ค. ์ด์ค‘ for๋ฌธ์œผ๋กœ 2์ฐจ์› ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•œ๋‹ค. (if๋ฌธ ๋‚จ๋ฐœํ•˜์ง€์•Š๊ณ  ์ž‘์„ฑ)

2. ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ƒํ•˜์ขŒ์šฐ ํฌ๊ธฐ ๋น„๊ต -> ๋‚˜๋ณด๋‹ค ํฐ๊ฒŒ ์—†์œผ๋ฉด ๋ด‰์šฐ๋ฆฌ๋‹ค -> ์นด์šดํŒ…ํ•œ๋‹ค.

 

 

ํ’€์ด

์„ธ๋ถ€์ ์œผ๋กœ ํ’€์ด๋ฅผ ํ•ด๋ณด๋ฉด,

 

1.

๋‚ด ์ขŒํ‘œ(๊ธฐ์ค€์ ) ์—์„œ ์ƒํ•˜์ขŒ์šฐ ์ขŒํ‘œ๋ฅผ ๊ตฌํ•ด์•ผํ•œ๋‹ค. 

์ž์‹ ๊ณผ ์ƒํ•˜์ขŒ์šฐ ์ˆซ์ž๋ฅผ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค. ์›€์ง์—ฌ์•ผํ•  ํ–‰๊ณผ ์—ด์„ ๋ฐฐ์—ด๋กœ ์ž‘์„ฑํ•œ๋‹ค. (์‹œ๊ณ„๋ฐฉํ–ฅ) 

ํ–‰๊ณผ ์—ด์€ ์„ธํŠธ๋กœ ์›€์ง์ธ๋‹ค. 

 

์ƒ, ํ•˜ ํ–‰ ์ด๋™

ํ–‰ = [์ƒ, ์šฐ, ํ•˜, ์ขŒ]  dx = [-1, 0, 1, 0] 

์ขŒ, ์šฐ ์—ด ์ด๋™

์—ด = [์ƒ, ์šฐ, ํ•˜, ์ขŒ]  dy = [0, 1, 0, -1] 

 

2.

๋‚ด ์ขŒํ‘œ(๊ธฐ์ค€์ )์€ i๊ณผ j๊ฐ€ ์ด์ค‘for๋ฌธ์„ ๋Œ๋ฉด์„œ ์ขŒํ‘œ๋ฅผ ๊ตฌํ•œ๋‹ค. 

 

3.

์ƒํ•˜์ขŒ์šฐ, 4๋ฒˆ k for๋ฌธ ๋Œ์•„์•ผํ•œ๋‹ค.

๋‚ด ์ขŒํ‘œ์˜ ๊ฐ’๊ณผ ๋„ค ๋ฐฉํ–ฅ์˜ ์ขŒํ‘œ ๋น„๊ตํ•ด์„œ, ๋„ค ๋ฐฉํ–ฅ์ด ๋” ์ž‘์œผ๋ฉด answer++ํ•œ๋‹ค. 

let nx = i+dx[k]; → i์— -1์ด๋‚˜ 1์„ ๋”ํ•ด ํ–‰์„ ์˜ฎ๊ธด๋‹ค (์ƒํ•˜์ด๋™)
let ny = j+dy[k]; → j์— -1์ด๋‚˜ 1์„ ๋”ํ•ด ์—ด์„ ์˜ฎ๊ธด๋‹ค (์ขŒ์šฐ์ด๋™)

์ƒ → ํ–‰์ด -1๋กœ ์ด๋™ํ•  ๋•Œ ์—ด์€ 0 ์ด๋™ (์—ด ์ด๋™์—†์Œ)

ํ•˜ → ํ–‰์ด 1๋กœ ์ด๋™ํ•  ๋•Œ ์—ด์€ 0 ์ด๋™ (์—ด ์ด๋™์—†์Œ)

์ขŒ → ์—ด์ด 1 ์ด๋™ํ•  ๋•Œ ํ–‰์€ 0 ์ด๋™ (ํ–‰ ์ด๋™์—†์Œ)

์šฐ → ์—ด์ด -1 ์ด๋™ํ•  ๋•Œ ์—ด์€ 0 ์ด๋™ (ํ–‰ ์ด๋™์—†์Œ)

 

4.

flag๋Š” ๋ด‰์šฐ๋ฆฌ์ธ์ง€ ์•„๋‹Œ์ง€ ์ฒดํฌํ•œ๋‹ค.

flag๊ฐ€ 0์ด๋ฉด answer ์นด์šดํŒ… ์•ˆ๋˜๊ณ , 1์ด๋ฉด ์นด์šดํŒ…๋œ๋‹ค. 

 

์ฝ”๋“œ

function solution(arr){
            let answer = 0; //์นด์šดํŒ…ํ•ด์•ผ๋˜๋‹ˆ๊นŒ 0์œผ๋กœ 
            let n = arr.length;
            let dx = [-1, 0, 1, 0];
            let dy = [0, 1, 0, -1];
            for(let i=0; i<n; i++){
                for(let j=0; j<n; j++){
                    let flag=1;
                    for(let k=0; k<4; k++){ // 4๋ฐฉํ–ฅ์ด๋ผ์„œ 4๋ฒˆ๋Œ๋„๋ก ๋งž์ถค
                        let nx = i+dx[k]; // ๊ฐ€๋ ค๊ณ ํ•˜๋Š” ๋ฐฉํ–ฅ ํ–‰ ์ขŒํ‘œ
                        let ny = j+dy[k]; // ๊ฐ€๋ ค๊ณ ํ•˜๋Š” ๋ฐฉํ–ฅ ์—ด ์ขŒํ‘œ 
                        if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny] >= arr[i][j]){ 
                            // arr[nx][ny]์ƒํ•˜์ขŒ์šฐ์ขŒํ‘œ >= ํ˜„์žฌ์ง€์ ์ขŒํ‘œ arr[i][j]
                            // nx>=0 && nx<n && ny>=0 && ny<n๋Š” 
                            // ๋‚ด ์ƒํ•˜์ขŒ์šฐ๊ฐ€ ๋„ค๋ฐฉํ–ฅ์œผ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ ๊ทธ ๊ฒฝ์šฐ๋Š” ์ œ์™ธํ•˜๋Š” ์กฐ๊ฑด
                            // ํ˜„์žฌ์ง€์  ์ขŒํ‘œ๋ณด๋‹ค ํฐ๊ฒŒ ์žˆ์œผ๋ฉด ๋ด‰์šฐ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ด๊ฑธ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ flag๋ณ€์ˆ˜ ์ž‘์„ฑํ•ด์ค€ ๊ฒƒ
                            flag=0;
                            break; // k for๋ฌธ ๋ฉˆ์ถค
                        }  
                    }
                    if(flag) answer++; 
                    // ์ƒํ•˜์ขŒ์šฐ ๋‹ค ๋Œ๊ณ  ๋‚˜์™€์„œ flag๊ฐ€ ๊ทธ๋Œ€๋กœ์ด๋ฉด answer++ ํ•ด์ค€๋‹ค
                }
            }
            return answer;
        }

    let arr = [[5, 3, 7, 2, 3],
                [3, 7, 1, 6, 1],
                [7, 2, 5, 3, 4],
                [4, 3, 6, 4, 1],
                [8, 7, 3, 5, 2]];
    console.log(solution(arr));

๋ฌธ์ œ

N*N ๊ฒฉ์žํŒ์ด ์ฃผ์–ด์ง€๋ฉด ๊ฐ ํ–‰์˜ ํ•ฉ, ๊ฐ ์—ด์˜ ํ•ฉ, ๋‘ ๋Œ€๊ฐ์„ ์˜ ํ•ฉ ์ค‘ ๊ฐ€์žฅ ํฐ ํ•ฉ์„ ์ถœ๋ ฅํ•˜์„ธ์š”.

 

์ž…๋ ฅ์˜ˆ์ œ |

10 13 10 12 15

12 39 30 23 11

11 25 50 53 15

19 27 29 37 27

19 13 30 13 19

์ถœ๋ ฅ์˜ˆ์ œ | 

155

 

 

 

ํ’€์ด

1. ๊ฐ ํ–‰์˜ ํ•ฉ, ๊ฐ ์—ด์˜ ํ•ฉ ๊ตฌํ•œ๋‹ค. (ํ•ฉ์„ ๊ตฌํ•ด์•ผํ•  ๋•Œ๋Š” sum ๋ณ€์ˆ˜ ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผํ•จ. ์—ฌ๊ธฐ์„œ๋Š” ํ–‰์˜ ํ•ฉ, ์—ด์˜ ํ•ฉ ํ•„์š”ํ•ด์„œ 2๊ฐœ ์„ ์–ธ)

2. ๊ฐ ๋Œ€๊ฐ์„ ์˜ ํ•ฉ ๊ตฌํ•œ๋‹ค.

3. ๋น„๊ตํ•ด์„œ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•ด์„œ answer์— ๋„ฃ๋Š”๋‹ค. 

4. answer ์ถœ๋ ฅ

function solution(arr){
            let answer = Number.MIN_SAFE_INTEGER;
            // 1. answer๋Š” ์ตœ๋Œ€๊ฐ’์„ ์ฐพ์•„์•ผํ•˜๋‹ˆ๊นŒ ์ตœ์†Œ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•ด๋†“๋Š”๋‹ค. 
            let n = arr.length;
            let sum1 = 0;
            let sum2 = 0;
            // ํ–‰์˜ ํ•ฉ์€ sum1๋กœ ์ €์žฅ
            // ์—ด์˜ ํ•ฉ์€ sum2๋กœ ์ €์žฅ
            // ํ–‰ ํƒ์ƒ‰, ์—ด ํƒ์ƒ‰์„ ์ด์ค‘for๋ฌธ์œผ๋กœ
            for(let i = 0; i < n; i++){
                sum1 = 0;
                sum2 = 0;
                // for๋ฌธ์ด ํ•œ ๋ฒˆ ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ์ดˆ๊ธฐํ™”๋ฅผ ์‹œ์ผœ์ค˜์•ผํ•œ๋‹ค.
                for(let j = 0; j < n; j++){
                    sum1 += arr[i][j]; // i๊ฐ€ ๋Œ๊ณ  j ๊ณ ์ •(i๊ธฐ์ค€ j์˜ ๋ชจ๋“  ๊ฐ’ ๋”ํ•˜์—ฌ ๋ˆ„์ )
                    sum2 += arr[j][i]; // j๊ฐ€ ๋Œ๊ณ  i ๊ณ ์ •(j๊ธฐ์ค€ i์˜ ๋ชจ๋“  ๊ฐ’ ๋”ํ•˜์—ฌ ๋ˆ„์ )
                    // ํ–‰์ด ๋Œ๊ณ  ์—ด์ด ๊ณ ์ •๋œ๋‹ค
                }
                answer = Math.max(answer, sum1, sum2); 
                // ์ตœ๋Œ€๊ฐ’ ๊ตฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ
            }
            
            // ์ด์ œ ๋Œ€๊ฐ์„ ์˜ ํ•ฉ ๊ตฌํ•˜๋Š” for๋ฌธ ์ž‘์„ฑ
            // ์ƒˆ๋กœ ๋Œ€๊ฐ์„  ํ•ฉ ๊ตฌํ•ด์•ผํ•ด์„œ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.
            sum1 = 0; 
            sum2 = 0;
            for(let i = 0; i < n; i++){
                sum1 = arr[i][i]; // ๋˜‘๊ฐ™์€ ์ธ๋ฑ์Šค์˜ ํ–‰๊ณผ ์—ด 
                sum2 = arr[i][n-i-1]; // sum1๊ณผ ๋Œ€์นญ์ธ ๊ฐ’์„ ๊ตฌํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.
            }
            answer = Math.max(answer, sum1, sum2);
            return answer;
    }
        

llet arr = [[10, 13, 10, 12, 15],
            [12, 39, 30, 23, 11],
            [11, 25, 50, 53, 15],
            [19, 27, 29, 37, 27],
            [19, 13, 30, 13, 19]];
        console.log(solution(arr));

ํ–‰๊ณผ ์—ด์„ ๊ฐ™์ด ํƒ์ƒ‰ํ•ด์•ผํ•˜๋ฏ€๋กœ ์ด์ค‘for๋ฌธ์„ ์‚ฌ์šฉํ•ด์ค€๋‹ค.

ํ–‰ -> i / ์—ด -> j

function solution(arr){
        let answer;
        let n = arr.length;
        let sum1 = 0;
        let sum2 = 0;
        for(let i = 0; i < n; i++){
            sum1 = 0;
            sum2 = 0;
            for(let j = 0; j < n; j++){
                sum1 += arr[i][j];
                sum2 += arr[j][i];
            }
            answer = Math.max(sum1, sum2);
        }
        sum1 = 0;
        sum2 = 0;
        for(let i = 0; i < n; i++){
                sum1 += arr[i][i];
                sum2 += arr[i][n-i-1];
        }
        answer = Math.max(sum1, sum2);
        return answer;
    }

        let arr = [[10, 13, 10, 12, 15],
                   [12, 39, 30, 23, 11],
                   [11, 25, 50, 53, 15],
                   [19, 27, 29, 37, 27],
                   [19, 13, 30, 13, 19]];
        console.log(solution(arr));

answer์— ๊ฐ€์žฅ ์ž‘์€ ์ •์ˆ˜๋ฅผ ์จ์ฃผ์ง€ ์•Š๊ณ ๋„ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋” ์•Œ์•„๋ณด์•„์•ผํ•  ๊ฐœ๋…! 

for๋ฌธ์ด ๋Œ๋•Œ๋งˆ๋‹ค sum ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๋Š” ๊ฒƒ.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šค์ฝ”ํ”„ ๊ฐœ๋… ์ •๋ฆฌํ•  ๊ฒƒ

 

 

 

์•Œ๊ฒŒ๋œ ๊ฐœ๋…

2์ฐจ์› ๋ฐฐ์—ด

๋ฐฐ์—ด์•ˆ์— ๋˜ ๋‹ค๋ฅธ ๋ฐฐ์—ด์ด ์žˆ๋Š” ๊ฒƒ 

2์ฐจ์› ๋ฐฐ์—ด์€  ํ–‰๊ณผ ์—ด์ด ์žˆ๋‹ค. 

ํ–‰๊ณผ ์—ด์ด ์žˆ์„๋•Œ, ํ–‰๋ถ€ํ„ฐ ์จ์ค€๋‹ค.

arr[ํ–‰][์—ด]

 

 

 

๋ฌธ์ œ

N(1<=N<=100)๋ช…์˜ ํ•™์ƒ์˜ ๊ตญ์–ด์ ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ๊ฐ ํ•™์ƒ์˜ ๋“ฑ์ˆ˜๋ฅผ ์ž…๋ ฅ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๊ฐ™์€ ์ ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋  ๊ฒฝ์šฐ ๋†’์€ ๋“ฑ์ˆ˜๋กœ ๋™์ผ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฆ‰ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๊ฐ€ 92์ ์ธ๋ฐ 92์ ์ด 3๋ช… ์กด์žฌํ•˜๋ฉด 1๋“ฑ์ด 3๋ช…์ด๊ณ  ๊ทธ ๋‹ค์Œ ํ•™์ƒ์€ 4๋“ฑ์ด ๋œ๋‹ค.

 

์ž…๋ ฅ์˜ˆ์ œ | 87 89 92 100 76

์ถœ๋ ฅ์˜ˆ์ œ | 4 3 2 1 5

 

 

ํ’€์ด

์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ’์„ ๋‘๊ฐœ์”ฉ ๋น„๊ตํ•˜๋ฉด์„œ ์กฐ๊ฑด์— ์ถฉ์กฑํ•˜๋ฉด answer๋ฅผ ++ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

์ด์ค‘for๋ฌธ ๊ฐœ๋…

for(let i = 0; i < 5; i++){
	for(let j = 0; j < arr.length; j++){
	}
}

i = 0 ์ผ ๋•Œ, j๊ฐ€ 0๋ถ€ํ„ฐ arr.length ๊นŒ์ง€ ๋ˆ๋‹ค. 

i = 1 ์ผ ๋•Œ, j๊ฐ€ 0๋ถ€ํ„ฐ arr.length ๊นŒ์ง€ ๋ˆ๋‹ค.

i = 2 ์ผ ๋•Œ, j๊ฐ€ 0๋ถ€ํ„ฐ arr.length ๊นŒ์ง€ ๋ˆ๋‹ค.

i = 3 ์ผ ๋•Œ, j๊ฐ€ 0๋ถ€ํ„ฐ arr.length ๊นŒ์ง€ ๋ˆ๋‹ค.

i = 4 ์ผ ๋•Œ, j๊ฐ€ 0๋ถ€ํ„ฐ arr.length ๊นŒ์ง€ ๋ˆ๋‹ค.

 

 

์ฒ˜์Œ์— ํ‘ผ ๋ฐฉ๋ฒ•1

function solution(arr){
	let answer = [];
    
    let count = 1;
    for(let i = 0; i < arr.length; i++){
    	for(let j = 0; j < arr.length; j++){
        	if(arr[j] > arr[i]) {
            	count++; 
            } else count = 0;
            answer.push(count);
            }
            return answer;
     	}
}
        
let arr = [87, 89, 92, 100, 76];
console.log(solution(arr));

์ฒ˜์Œ์— ํ‘ผ ๋ฐฉ๋ฒ•2

const solution = (arr) => {
  let answer = [];

  for (let i = 0; i < arr.length; i++) {
    let count = 0;
    for (let j = 0; j < arr.length; j++) {
      if (arr[i] < arr[j]) count++;
    }
    answer.push(count + 1);
  }
  return answer;
}

const arr = [87, 89, 92, 92, 76];
console.log(solution(arr));

ํ˜„์žฌ๊ฐ’arr[i]์ด arr[j]๋ณด๋‹ค ์ž‘์œผ๋ฉด ์นด์šดํŒ…,

๋‚ด ๊ฐ’์—์„œ +1ํ•œ ๊ฐ’์„ answer๋ฐฐ์—ด์— ๋ˆ„์ ํ•œ๋‹ค. 

 

๋‹ค๋ฅธ ํ’€์ด

1๋กœ ์ดˆ๊ธฐํ™”๋œ 1์ฐจ์› ๋ฐฐ์—ด์„ answer์— ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“๋Š”๋‹ค.

let n = arr.length;
let answer = Array.from({length:n}, ()=>1);
// Array.from์œผ๋กœ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ 1๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋‹ค. 
// [1, 1, 1, 1, 1]
function solution(arr){
	let n = arr.length;
	let answer = Array.from({length:n}, ()=>1);
		for(let i = 0; i < n; i++){
			for(let j = 0; j < n; j++){
				if(arr[j] > arr[i]) answer[i]++;
                // answer์˜ i๋ฒˆ์งธ ๊ฐ’์„ ++ ํ•ด์ค€๋‹ค.
                // answer๋Š” ๋ฐฐ์—ด์ด๋‹ˆ๊นŒ answer๋ฐฐ์—ด์˜ i๋ฒˆ์งธ์— ๋„ฃ์–ด์„œ ++ ํ•ด์ค˜์•ผํ•œ๋‹ค.
            }
         }
         return answer;
        
}
        
let arr = [87, 89, 92, 100, 76];
console.log(solution(arr));

 

์‚ฌ์šฉํ•œ ๊ฐœ๋…

Array.from

๋ฐฐ์—ด๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ

์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒดarrayLike๋‚˜ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ์–•๊ฒŒ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ๋กœ์šด Array ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค. 

๋ฐฐ์—ด๊ฐ’ ๊ฐ๊ฐ์— ์›ํ•˜๋Š” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑํ•˜๊ธฐ

console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]

console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
// ์ฝœ๋ฐฑํ•จ์ˆ˜๋กœ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ์‚ฌ์šฉ

 

+ Recent posts