ALL
[JS] ๋ฐฑ์ค 1931 ๋ฒ : ํ์์ค ๋ฐฐ์ (feat.๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ)
Question ๋ฐฑ์ค 1931๋ฒ : ํ์์ค ๋ฐฐ์ ํ ๊ฐ์ ํ์์ค์ด ์๋๋ฐ ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ N๊ฐ์ ํ์์ ๋ํ์ฌ ํ์์ค ์ฌ์ฉํ๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ๊ฐ ํ์ I์ ๋ํด ์์์๊ฐ๊ณผ ๋๋๋ ์๊ฐ์ด ์ฃผ์ด์ ธ ์๊ณ , ๊ฐ ํ์๊ฐ ๊ฒน์น์ง ์๊ฒ ํ๋ฉด์ ํ์์ค์ ์ฌ์ฉํ ์ ์๋ ํ์์ ์ต๋ ๊ฐ์๋ฅผ ์ฐพ์๋ณด์. ๋จ, ํ์๋ ํ๋ฒ ์์ํ๋ฉด ์ค๊ฐ์ ์ค๋จ๋ ์ ์์ผ๋ฉฐ ํ ํ์๊ฐ ๋๋๋ ๊ฒ๊ณผ ๋์์ ๋ค์ ํ์๊ฐ ์์๋ ์ ์๋ค. ํ์์ ์์์๊ฐ๊ณผ ๋๋๋ ์๊ฐ์ด ๊ฐ์ ์๋ ์๋ค. ์ด ๊ฒฝ์ฐ์๋ ์์ํ์๋ง์ ๋๋๋ ๊ฒ์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค. 1931๋ฒ: ํ์์ค ๋ฐฐ์ (1,4), (5,7), (8,11), (12,14) ๋ฅผ ์ด์ฉํ ์ ์๋ค. www.acmicpc.net ์ ๋ ฅ ์ฒซ์งธ ์ค์ ํ์์ ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค...
[์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ] ์์๋๋ฉด ์ ์ฉํ Math ๋ฉ์๋ ์ ๋ฆฌ, ๋ก๋๋ฒํธ ์ถ์ถ๊ธฐ
1. Math๊ฐ์ฒด Math๊ฐ์ฒด๋ ์ํ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์์์ ํจ์๋ค์ ๊ตฌํํด๋์ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ค ๋ด์ฅ ๊ฐ์ฒด์ด๋ค. 1-2. Math๊ฐ์ฒด ํน์ง Math๊ฐ์ฒด๋ Number ์๋ฃํ๋ง ์ง์ํ๋ฉฐ BigInt์๋ ์ฌ์ฉํ ์ ์๋ค. (BigInt : Number๋ณด๋ค ํฐ ์ ์๋ฅผ ํํํ ์ ์๋ ๋ด์ฅ๊ฐ์ฒด) constrctor(์์ฑ์)๊ฐ ์๋ค instance๋ฅผ ์์ฑํ์ง ์๊ณ ๋ฐ๋ก Math๊ฐ์ฒด์ ๋ชจ๋ ๋ฉ์๋์ ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. 2. ๋ํ์ Math ๋ฉ์๋์ ์์ 2-1. Math.floor(num) โก๏ธ Number ์ธ์์ ์์์ ์ดํ๋ฅผ ๋ด๋ฆผํ์ฌ ์ ์๋ฅผ ๋ฐํ ์์์ผ ๊ฒฝ์ฐ ์์์ ์ดํ๋ฅผ ๋ด๋ฆผํ ํ -1 ํ ์ ์๋ฅผ ๋ฐํ Math.floor(1.6); //1 Math.floor(1.2); //1 Math.floor..
[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? ..
[์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ] ํ์(Greedy) ์๊ณ ๋ฆฌ์ฆ
1. ํ์ ์๊ณ ๋ฆฌ์ฆ (Greedy Algorithms) ํ์(Greedy)์ ๋ง ๊ทธ๋๋ก ์ง๋์น๊ฒ ์์ฌ์ด ๋ง๋ค๋ ๋ป์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ํ์์๊ณ ๋ฆฌ์ฆ์ ๋ฌด์์ผ๊น? ๋ฏธ๋๋ฅผ ์๊ฐํ์ง ์๊ณ ํ์ฌ์ ๋จ๊ณ์์ ๊ฐ์ฅ ์ต์ ์ ์ ํ์ ํ๋ ๊ฒ์ ํ์์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ๋ค. ๋์ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋จํ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉ ์ ๋ง์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ฌ์ฉ๋ผ ๋นํจ์จ์ ์ด๋ค. (๋์ ํ๋ก๊ทธ๋๋ฐ : ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ๊ฒํ ํด ์ ํ์์ ํตํด ๊ตฌ์ฑ) ๋์ ํ๋ก๊ทธ๋๋ฐ์ ๋์ฒดํ๋ ๊ฒ์ ์๋๊ณ ๋์ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ด ์ํฉ์ ๋ง๊ฒ ์ฐ์ด๋ ๊ฒ์ด ํ์์๊ณ ๋ฆฌ์ฆ์ด๋ค. 2. ํ์์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฆฝ ์กฐ๊ฑด ํ์์ ์ ํ ์์ฑ(Greedy Choice Property) : ํ์์ ์ ํ์ด ์ ์ฒด ๋ฌธ์ ์ ์ต์ ํด๋ฅผ ๊ตฌํ ์ ์๋ค , ์์ ์ ํ์ด ๋ค์ ์ ํ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค. ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ(O..
[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 ++)..
[์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ] ํ๋ ธ์ดํ ์๊ณ ๋ฆฌ์ฆ
1. ํ๋ ธ์ดํ ์๊ณ ๋ฆฌ์ฆ ์๋ฆฌ ํ๋ ธ์ดํ์ ์ฌ๊ท๋ฅผ ์ด์ฉํ ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์๋ ค์ ธ ์๋ค. ์ด 3๊ฐ์ ๊ธฐ๋ฅ์ด ์กด์ฌํ๋ค. ์ฃผ์ด์ง n๊ฐ์ ์ํ์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋งํ๋ค. ์ด๋ ๋ช ๊ฐ์ง ๊ท์น๋ค์ด ์กด์ฌํ๋ค. ํ ๋ฒ์ ๋ฑ ํ ๊ฐ์ ์ํ๋ง ์ด๋ํ ์ ์๋ค. ์ฎ๊ฒจ์ง ์ํ์ ๋ฌด์กฐ๊ฑด ๋งจ ์์ ์ฌ๋ผ๊ฐ๋ค. ๋งจ ์์ ์๋ ์ํ๋ง ์ฎ๊ธธ ์ ์๋ค. ํฌ๊ธฐ๊ฐ ํฐ ์ํ์ ์์ ์ํ ์๋ก ์ฌ๋ผ๊ฐ ์ ์๋ค. ํ๋ ธ์ดํ์ 3๋ฒ์งธ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ธฐ๋๋ฐ ํ์ํ ์ดํ์๋ "2^n - 1" ๋ฒ์ด๋ค. ์๋ฅผ ๋ค์ด 3๊ฐ์ ์ํ์ ์ฎ๊ธด๋ค๊ณ ์๊ฐํด๋ณด์. A์ ์๋ 3๊ฐ์ง๋ฆฌ ๊ธฐ๋ฅ์ C๋ก B๋ก ์ฎ๊ธฐ๋ ๊ณผ์ ์ด๋ค. ์ฐ์ 3๋ฒ ์ํ์ ์ฎ๊ธฐ๊ธฐ ์ํด์๋ ์์ ์๋ 1๋ฒ๊ณผ 2๋ฒ ์ํ์ C๋ก ์ฎ๊ฒจ์ผ ํ๋ค. 1๋ฒ ์ํ์ A์์ B๋ก ์ด๋ 2๋ฒ ์ํ์ A์์ C๋ก ์ด๋ ..
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ
Question ์ ์ถ๋ ฅ ์์ My Code function solution(n) { n = String(n); n = Number(n.split('').map(Number).sort((a, b) => b-a).join('')); return n; } HOW? (ํ์ด๋ฐฉ๋ฒ) ์ ๋ ฅ๋ฐ์ number๋ฅผ string์ผ๋ก ๋ณํํ๊ณ split()์ ์ด์ฉํด ์๋ฆฟ์ ๋ณ๋ก ๋๋๊ณ map(Number)์ผ๋ก string์ number๋ก ๋ณํํ๋ค. ์ซ์ ๋ฐฐ์ด์ sort((a, b) => b-a)๋ฅผ ํตํด ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์ด์ ์ ๋ ฌํ๋ค. join('')์ผ๋ก ๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ๋ณํํ๋ค. ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋๊น sort()๋ก ์ซ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ฃผ๊ณ everse()๋ก ๋ฐฐ์ด์ ๋ค์ง์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ๋ ์์๋ค.