Algorithms/Programmers

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ํฐ์ผ“๋ชฌ

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ํฐ์ผ“๋ชฌ

    Question ์ œํ•œ์‚ฌํ•ญ nums๋Š” ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด 1์ฐจ์› ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. nums์˜ ๊ธธ์ด(N)๋Š” 1 ์ด์ƒ 10,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ํ•ญ์ƒ ์ง์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๋Š” 1 ์ด์ƒ 200,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋„, ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’ ํ•˜๋‚˜๋งŒ return ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ My Code function solution(nums) { let n = nums.length/2; let set = new Set(nums); return set.size > n ? n : set.size; } ์ €๋ ‡๊ฒŒ ๊ธด ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ์ˆœ๊ฐ„ ๋ฉˆ์นซํ•˜๊ฒŒ ๋œ๋‹ค. ์•„์ง ๋ ˆ๋ฒจ1์ด๋ฉด์„œ ์™œ ์ด๋ ‡๊ฒŒ ๊ธฐ์‹œ์ฃ ? ์š”์•ฝํ•ด์„œ ์ค‘์š”ํ•œ..

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž

    Question ํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ x์™€ ์ž์—ฐ์ˆ˜ n์„ ์ž…๋ ฅ๋ฐ›์•„, x๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด x์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž๋ฅผ n๊ฐœ ์ง€๋‹ˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ œํ•œ ์กฐ๊ฑด์„ ๋ณด๊ณ , ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. https://school.programmers.co.kr/learn/courses/30/lessons/12954 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ œํ•œ์กฐ๊ฑด x๋Š” -10000000 ์ด์ƒ, 10000000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. n์€ 1000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ My Code function solution(..

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : 2016๋…„

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : 2016๋…„

    Question 2016๋…„ 1์›” 1์ผ์€ ๊ธˆ์š”์ผ์ž…๋‹ˆ๋‹ค. 2016๋…„ a์›” b์ผ์€ ๋ฌด์Šจ ์š”์ผ์ผ๊นŒ์š”? ๋‘ ์ˆ˜ a ,b๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ 2016๋…„ a์›” b์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. ์š”์ผ์˜ ์ด๋ฆ„์€ ์ผ์š”์ผ๋ถ€ํ„ฐ ํ† ์š”์ผ๊นŒ์ง€ ๊ฐ๊ฐ SUN,MON,TUE,WED,THU,FRI,SAT ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด a=5, b=24๋ผ๋ฉด 5์›” 24์ผ์€ ํ™”์š”์ผ์ด๋ฏ€๋กœ ๋ฌธ์ž์—ด "TUE"๋ฅผ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”. ์ œํ•œ์กฐ๊ฑด 2016๋…„์€ ์œค๋…„์ž…๋‹ˆ๋‹ค. 2016๋…„ a์›” b์ผ์€ ์‹ค์ œ๋กœ ์žˆ๋Š” ๋‚ ์ž…๋‹ˆ๋‹ค. (13์›” 26์ผ์ด๋‚˜ 2์›” 45์ผ๊ฐ™์€ ๋‚ ์งœ๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค) ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 2016๋…„ 2016๋…„ 1์›” 1์ผ์€ ๊ธˆ์š”์ผ์ž…๋‹ˆ๋‹ค. 2016๋…„ a์›” b์ผ์€ ๋ฌด์Šจ ์š”์ผ์ผ๊นŒ์š”? ๋‘ ์ˆ˜ a ,b๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ 2016๋…„ a์›” b์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€..

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : K๋ฒˆ์งธ ์ˆ˜

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : K๋ฒˆ์งธ ์ˆ˜

    Question ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : K๋ฒˆ์งธ์ˆ˜ ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช… [1, 5, 2, 6, 3, 7, 4]๋ฅผ 2๋ฒˆ์งธ๋ถ€ํ„ฐ 5๋ฒˆ์งธ๊นŒ์ง€ ์ž๋ฅธ ํ›„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. [2, 3, 5, 6]์˜ ์„ธ ๋ฒˆ์งธ ์ˆซ์ž๋Š” 5์ž…๋‹ˆ๋‹ค. [1, 5, 2, 6, 3, 7, 4]๋ฅผ 4๋ฒˆ์งธ๋ถ€ํ„ฐ 4๋ฒˆ์งธ๊นŒ์ง€ ์ž๋ฅธ ํ›„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. [6]์˜ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋Š” 6์ž…๋‹ˆ๋‹ค. [1, 5, 2, 6, 3, 7, 4]๋ฅผ 1๋ฒˆ์งธ๋ถ€ํ„ฐ 7๋ฒˆ์งธ๊นŒ์ง€ ์ž๋ฆ…๋‹ˆ๋‹ค. [1, 2, 3, 4, 5, 6, 7]์˜ ์„ธ ๋ฒˆ์งธ ์ˆซ์ž๋Š” 3์ž…๋‹ˆ๋‹ค. My Code 1. for๋ฌธ์„ ๋Œ๋ ค์„œ answer์— push ํ•˜๋Š” ์ฝ”๋“œ function solution(array, commands) { let answer = []; let len = commands.length; for (let i = 0; ..

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ

    Question ์ •์ˆ˜๋ฅผ ์ €์žฅํ•œ ๋ฐฐ์—ด, arr์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹จ, ๋ฆฌํ„ดํ•˜๋ ค๋Š” ๋ฐฐ์—ด์ด ๋นˆ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ์—” ๋ฐฐ์—ด์— -1์„ ์ฑ„์›Œ ๋ฆฌํ„ดํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด arr์ด [4,3,2,1]์ธ ๊ฒฝ์šฐ๋Š” [4,3,2]๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ , [10] ๋ฉด [-1]์„ ๋ฆฌํ„ด ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•œ ๋ฐฐ์—ด, arr ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹จ, ๋ฆฌํ„ดํ•˜๋ ค๋Š” ๋ฐฐ์—ด์ด ๋นˆ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ์—” ๋ฐฐ์—ด์— -1์„ ์ฑ„์›Œ ๋ฆฌํ„ดํ•˜์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด arr์ด [4,3,2,1 programmers.co.kr ์ œํ•œ ์กฐ๊ฑด arr์€ ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค i, j์— ๋Œ€ํ•ด i ≠ j์ด๋ฉด arr[i] ≠ ar..

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ

    Question ์ž์—ฐ์ˆ˜ n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด n์ด 12345์ด๋ฉด [5,4,3,2,1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ ์ž์—ฐ์ˆ˜ n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 12345์ด๋ฉด [5,4,3,2,1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์กฐ๊ฑด n์€ 10,000,000,000์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ n return 12345 programmers.co.kr ์ œํ•œ์กฐ๊ฑด n์€ 10,000,000,000์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ My Code function solution(n) { return String(n).split('').map(Number).reverse(); } HOW? ..

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ

    Question ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ์„ค๋ช… "try hello world"๋Š” ์„ธ ๋‹จ์–ด "try", "hello", "world"๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด์˜ ์ง์ˆ˜๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ, ํ™€์ˆ˜๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๋ฉด "TrY", "HeLlO", "WoRlD"์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "TrY HeLlO WoRlD" ๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. My Code ๋‚ด๊ฐ€ ํ’€๊ณ ์‹ถ์—ˆ๋˜ ๋ฐฉ๋ฒ• (์‹คํŒจ ๐Ÿคท‍โ™‚๏ธ but! ์–ป์€ ๊ฑฐ ์žˆ์Œ ๐Ÿ‘) map์„ ์ด์šฉํ•ด์„œ ์ง์ˆ˜๋ฒˆ์งธ ์–˜๋“ค์„ ๋Œ€๋ฌธ์ž๋กœ ๋งŒ๋“ค๊ณ  join์œผ๋กœ ๋ฌถ์–ด์ค€ ๋‹ค์Œ์— ์ตœ์ข…์ ์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์—ˆ์œผ๋‚˜ ์ง์ˆ˜๋ฒˆ์งธ์— ๊ธ€์ž๊ฐ€ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜์ด ์•ˆ๋ผ๊ณ  undefined๊ฐ€ ๋œฌ๋‹ค! ์•„๋ž˜๋Š” map์„ ์ด์šฉํ–ˆ๋˜ ์ฝ”๋“œ์ด๋‹ค. function solution(s) { var answer = ''; let strArr =..

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ฒด์œก๋ณต

    [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ฒด์œก๋ณต

    Question ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ์„ค๋ช… ์˜ˆ์ œ #1 1๋ฒˆ ํ•™์ƒ์ด 2๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๊ณ , 3๋ฒˆ ํ•™์ƒ์ด๋‚˜ 5๋ฒˆ ํ•™์ƒ์ด 4๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ฉด ํ•™์ƒ 5๋ช…์ด ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ #2 3๋ฒˆ ํ•™์ƒ์ด 2๋ฒˆ ํ•™์ƒ์ด๋‚˜ 4๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ฉด ํ•™์ƒ 4๋ช…์ด ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. My Code ์ฐธ๊ณ  : ์ฝ”๋“œ์˜ ์ง„ํ™”๊ณผ์ •์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค ๐Ÿ˜Ž ์ฝ”๋“œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ํ†ต๊ณผํ–ˆ์ง€๋งŒ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๊ฑธ๋ ค ์‹คํŒจํ•œ ์ฝ”๋“œ์ด๋‹ค. function solution(n, lost, reserve) { let lostLength = lost.length; let answer = n - lostLength; let arr = []; for (let i = 0 ; i < lostLength ; i ++)..