Algorithms/Programmers
[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๊ฐ์ ์ซ์
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๋
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๋ฒ์งธ ์
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] ํ๋ก๊ทธ๋๋จธ์ค : ์ ์ผ ์์ ์ ์ ๊ฑฐํ๊ธฐ
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] ํ๋ก๊ทธ๋๋จธ์ค : ์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ
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] ํ๋ก๊ทธ๋๋จธ์ค : ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ
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] ํ๋ก๊ทธ๋๋จธ์ค : ์ฒด์ก๋ณต
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 ++)..