๋ชฉ๋ก๐ตAlgorithm (25)
Input + Output = True

์๊ณ ๋ฆฌ์ฆ - ๋งฅ์ฃผ ์ฟ ํฐ ๋ฌธ์ ์ค๋ช ์ ์ ์ง์์ ๋งฅ์ฃผ๋ฅผ ์ํค๋ฉด 1๋ณ ๋น ๋์ฅ์ ํ๋ ์ฐ์ด๋๋ฆฝ๋๋ค. ๋์ฅ์ด 10๊ฐ๊ฐ ๋๋ฉด **์๋น์ค๋งฅ์ฃผ** 1๋ณ์ผ๋ก ๋ฐ๊ฟ ์ ์๊ณ , ๋ฐ๊พผ ๋งฅ์ฃผ์๋ ๋์ฅ์ ํ๋ ์ฐ์ด๋๋ฆฝ๋๋ค. ์ฃผ๋ฌธํ ๋งฅ์ฃผ๋ณ ์ `beer` ๊ฐ ์ฃผ์ด์ง ๋ ๋ง์ค ์ ์๋ ์ต๋ ์๋น์ค ๋งฅ์ฃผ๋ณ ์๋ฅผ return ํ๋๋ก ํ๋ solution ํจ์๋ฅผ ์์ฑํ์ธ์. function solution(beer) { let service = 0 while(beer >= 10){ //๋์ฅ์ด 10๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ๋ฐ๋ณต beer = beer - 10 //๋์ฅ 10๊ฐ ์ฐจ๊ฐ service += 1 //์๋น์ค ์ถ๊ฐ beer += 1 // ์๋น์ค ์ถ๊ฐ ์ ๋์ฅ 1๊ฐ ์ถ๊ฐ } return service } let beer = 9911; consol..

์๊ณ ๋ฆฌ์ฆ - ์ ๋ฐฐ๋ฌ ๋ฌธ์ ์ค๋ช ์ ๊ฐ๊ฒ์ ์ ํํ๊ฒ N ํฌ๋ก๊ทธ๋จ ๋ฐฐ๋ฌํด์ผ ํ๋ค. ๊ฐ์ง ์ ํฌ๋๋ 3ํฌ๋ก์ 5ํฌ๋ก ํฌ๋๊ฐ ์๋ค. ์ต๋ํ ์ ์ ๋ด์ง ๊ฐ์๋ก ๋ฐฐ๋ฌ์ ํ๋ คํ๋ค. ์๋ฅผ ๋ค๋ฉด, 21ํฌ๋ก๊ทธ๋จ ์์, 3ํฌ๋ก ํฌ๋ 7๊ฐ๋ก ๋ฐฐ๋ฌ ๊ฐ๋ฅ ํ์ง๋ง, 5ํฌ๋ก 3ํฌ๋์ 3ํฌ๋ก 2ํฌ๋๋ก ๋ฐฐ๋ฌํ๋ฉด ์ด 5ํฌ๋๋ก ๋ ์ ์ ๊ฐ์๋ก ๋ฐฐ๋ฌํ ์ ์๋ค. ์์ Nํฌ๋ก๊ทธ๋จ ๋ฐฐ๋ฌํ ๋, ๊ฐ์ฅ ์ ์ ์ ํฌ๋์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. - ์ ์ N์ด ์ฃผ์ด์ง๋ค. (3 ≤ N ≤ 1,000) - ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๋ค๋ฉด -1์ ์ถ๋ ฅ const n = 18 function delivery(n){ let count = 0 while(n > 2){ if(n % 5 === 0){ return count += parseInt(..

์์ฐ์ ๋ค์ง๊ธฐ ๋ฌธ์ ์ค๋ช ์์ฐ์ n์ ๋ค์ง์ด ๊ฐ ์๋ฆฌ ์ซ์๋ฅผ ์์๋ก ๊ฐ์ง๋ ๋ฐฐ์ด ํํ๋ก ๋ฆฌํดํด์ฃผ์ธ์. ์๋ฅผ๋ค์ด n์ด 12345์ด๋ฉด [5,4,3,2,1]์ ๋ฆฌํดํฉ๋๋ค. ์ ํ ์กฐ๊ฑด n์ 10,000,000,000์ดํ์ธ ์์ฐ์์ ๋๋ค. const n = 123456789101112 function solution(n){ return String(n).split('').reverse().map(val => parseInt(val)) } console.log(solution(n)) reverse์ map ํจ์๋ก ๊ฐ๋จํ๊ฒ ๊ตฌํ. reverse ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ฐฐ์ด๋ก ๋ณํ. https://school.programmers.co.kr/learn/courses/30/lessons/12932?language=javas..

์๋ฆฟ์ ๋ํ๊ธฐ ๋ฌธ์ ์ค๋ช ์์ฐ์ N์ด ์ฃผ์ด์ง๋ฉด, N์ ๊ฐ ์๋ฆฟ์์ ํฉ์ ๊ตฌํด์ return ํ๋ solution ํจ์๋ฅผ ๋ง๋ค์ด ์ฃผ์ธ์. ์๋ฅผ๋ค์ด N = 123์ด๋ฉด 1 + 2 + 3 = 6์ return ํ๋ฉด ๋ฉ๋๋ค. ์ ํ์ฌํญ N์ ๋ฒ์ : 100,000,000 ์ดํ์ ์์ฐ์ const n = 123 function solution(n){ return String(n) .split('') .map(val => Number(val)) .reduce((acc, cur) => acc + cur , 0) } console.log(solution(n)) ๋ฐฐ์ด๋ก ๋ณํ ํ map ํจ์์ reduce ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ. ์๊ณ ๋ฆฌ์ฆ์์ map ๊ณผ reduce ํจ์๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. https://school.prog..

์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด s๋ ํ ๊ฐ ์ด์์ ๋จ์ด๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๊ฐ ๋จ์ด๋ ํ๋ ์ด์์ ๊ณต๋ฐฑ๋ฌธ์๋ก ๊ตฌ๋ถ๋์ด ์์ต๋๋ค. ๊ฐ ๋จ์ด์ ์ง์๋ฒ์งธ ์ํ๋ฒณ์ ๋๋ฌธ์๋ก, ํ์๋ฒ์งธ ์ํ๋ฒณ์ ์๋ฌธ์๋ก ๋ฐ๊พผ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํ์ธ์. ์ ํ ์ฌํญ ๋ฌธ์์ด ์ ์ฒด์ ์ง/ํ์ ์ธ๋ฑ์ค๊ฐ ์๋๋ผ, ๋จ์ด(๊ณต๋ฐฑ์ ๊ธฐ์ค)๋ณ๋ก ์ง/ํ์ ์ธ๋ฑ์ค๋ฅผ ํ๋จํด์ผํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๊ธ์๋ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ก ๋ณด์ ์ง์๋ฒ์งธ ์ํ๋ฒณ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ ์ถ๋ ฅ ์ s return "try hello world" "TrY HeLlO WoRlD" ์ ์ถ๋ ฅ ์ ์ค๋ช "try hello world"๋ ์ธ ๋จ์ด "try", "hello", "world"๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๊ฐ ๋จ์ด์ ์ง์๋ฒ์งธ ๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก, ํ์๋ฒ์งธ ๋ฌธ..

์์ฃผํ์ง ๋ชปํ ์ ์ ๋ฌธ์ ์ค๋ช ์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค. ๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช ์ด์ 100,000๋ช ์ดํ์ ๋๋ค. completion์ ๊ธธ์ด๋ participant์ ๊ธธ์ด๋ณด๋ค 1 ์์ต๋๋ค. ์ฐธ๊ฐ์์ ์ด๋ฆ์ 1๊ฐ ์ด์ 20๊ฐ ์ดํ์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช ์ด์ธ์ด ์์ ์ ์์ต๋๋ค. const participant = ["mislav", "stank..

์๋ฐ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์ ๋ฌธ์ ์ค๋ช ๊ธธ์ด๊ฐ n์ด๊ณ , "์๋ฐ์๋ฐ์๋ฐ์...."์ ๊ฐ์ ํจํด์ ์ ์งํ๋ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํ์ธ์. ์๋ฅผ๋ค์ด n์ด 4์ด๋ฉด "์๋ฐ์๋ฐ"์ ๋ฆฌํดํ๊ณ 3์ด๋ผ๋ฉด "์๋ฐ์"๋ฅผ ๋ฆฌํดํ๋ฉด ๋ฉ๋๋ค. ์ ํ ์กฐ๊ฑด n์ ๊ธธ์ด 10,000์ดํ์ธ ์์ฐ์์ ๋๋ค. const n = 3 function solution(n){ return '์๋ฐ'.repeat(n).slice(0, n) } console.log(solution(n)) repeat ํจ์์ slice ํจ์๋ก ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋ค. ๐๐๐๐๐๐ https://school.programmers.co.kr/learn/courses/30/lessons/12922?language=javascript

์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ ๋ฌธ์ ์ค๋ช Stringํ ๋ฐฐ์ด seoul์ element์ค "Kim"์ ์์น x๋ฅผ ์ฐพ์, "๊น์๋ฐฉ์ x์ ์๋ค"๋ String์ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํ์ธ์. seoul์ "Kim"์ ์ค์ง ํ ๋ฒ๋ง ๋ํ๋๋ฉฐ ์๋ชป๋ ๊ฐ์ด ์ ๋ ฅ๋๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ ํ ์ฌํญ seoul์ ๊ธธ์ด 1 ์ด์, 1000 ์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค. seoul์ ์์๋ ๊ธธ์ด 1 ์ด์, 20 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค. "Kim"์ ๋ฐ๋์ seoul ์์ ํฌํจ๋์ด ์์ต๋๋ค. const seoul = ["Jane", "Kim"] function solution(seoul){ return `๊น์๋ฐฉ์ ${seoul.indexOf('Kim')}์ ์๋ค` } console.log(solution(seoul)) indexO..

๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด s์ ๊ธธ์ด๊ฐ 4 ํน์ 6์ด๊ณ , ์ซ์๋ก๋ง ๊ตฌ์ฑ๋ผ์๋์ง ํ์ธํด์ฃผ๋ ํจ์, solution์ ์์ฑํ์ธ์. ์๋ฅผ ๋ค์ด s๊ฐ "a234"์ด๋ฉด False๋ฅผ ๋ฆฌํดํ๊ณ "1234"๋ผ๋ฉด True๋ฅผ ๋ฆฌํดํ๋ฉด ๋ฉ๋๋ค. ์ ํ ์ฌํญ s๋ ๊ธธ์ด 1 ์ด์, ๊ธธ์ด 8 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค. s๋ ์๋ฌธ ์ํ๋ฒณ ๋์๋ฌธ์ ๋๋ 0๋ถํฐ 9๊น์ง ์ซ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. const s = '1e34' function solution(s) { return /^[0-9]{4}$|^[0-9]{6}$/.test(s) } console.log(solution(s)) ์ ๊ทํํ์์ ์ฌ์ฉํด์ ๊ตฌํํ๋ค. ๋ฌธ์์ด ๊ธธ์ด 4 ํน์ ๋ฌธ์์ด ๊ธธ์ด 6 && ์ซ์ ์ฒดํฌ https://school.programmers.co.kr/lea..

๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์ ๋ฌธ์ ์ค๋ช ๋๋ฌธ์์ ์๋ฌธ์๊ฐ ์์ฌ์๋ ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง๋๋ค. s์ 'p'์ ๊ฐ์์ 'y'์ ๊ฐ์๋ฅผ ๋น๊ตํด ๊ฐ์ผ๋ฉด True, ๋ค๋ฅด๋ฉด False๋ฅผ return ํ๋ solution๋ฅผ ์์ฑํ์ธ์. 'p', 'y' ๋ชจ๋ ํ๋๋ ์๋ ๊ฒฝ์ฐ๋ ํญ์ True๋ฅผ ๋ฆฌํดํฉ๋๋ค. ๋จ, ๊ฐ์๋ฅผ ๋น๊ตํ ๋ ๋๋ฌธ์์ ์๋ฌธ์๋ ๊ตฌ๋ณํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด s๊ฐ "pPoooyY"๋ฉด true๋ฅผ returnํ๊ณ "Pyy"๋ผ๋ฉด false๋ฅผ returnํฉ๋๋ค. ์ ํ์ฌํญ ๋ฌธ์์ด s์ ๊ธธ์ด : 50 ์ดํ์ ์์ฐ์ ๋ฌธ์์ด s๋ ์ํ๋ฒณ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. const s = 'pPoooyY' function solution(s){ return s.toLowerCase().split('p').length === s..