[JavaScript/section 4] 05 - K번째 큰 수
Β·
Algorithm/μΈν”„λŸ°(inflearn)
πŸ“Œ 문제 ν˜„μˆ˜λŠ” 1λΆ€ν„° 100μ‚¬μ΄μ˜ μžμ—°μˆ˜κ°€ 적힌 Nμž₯의 μΉ΄λ“œλ₯Ό 가지고 μžˆλ‹€. 같은 숫자의 μΉ΄λ“œκ°€ μ—¬λŸ¬μž₯ μžˆμ„ 수 μžˆλ‹€. ν˜„μˆ˜λŠ” 이 쀑 3μž₯을 뽑아 각 μΉ΄λ“œμ— 적힌 수λ₯Ό ν•©ν•œ 값을 κΈ°λ‘ν•˜λ €κ³  ν•œλ‹€. 3μž₯을 뽑을 수 μžˆλŠ” λͺ¨λ“  경우λ₯Ό κΈ°λ‘ν•œλ‹€. κΈ°λ‘ν•œ κ°’ 쀑 K번째둜 큰 수λ₯Ό 좜λ ₯ν•˜λŠ” λ¬Έμ œμ΄λ‹€. λ§Œμ•½ 큰 μˆ˜λΆ€ν„° λ§Œλ“€μ–΄μ§„ μˆ˜κ°€ 25 25 23 23 22 20 19.....이고 K값이 3이라면 K번째 큰 값은 22이닀. πŸ“ 풀이 πŸ§‘πŸ»‍πŸ’» λ‚˜μ˜ 풀이 방법 3쀑 for문을 μ‚¬μš©ν•˜μ—¬ Nμž₯의 μΉ΄λ“œ 쀑 3μž₯의 μΉ΄λ“œλ₯Ό 뽑고 μΉ΄λ“œμ— 적힌 수λ₯Ό ν•©ν•œ 값을 배열에 μ €μž₯ν•œλ‹€. 배열에 μ €μž₯된 값을 λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜κ³  Set 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ 쀑볡을 μ œκ±°ν•œλ‹€. λ‹€μ‹œ μŠ€ν”„λ ˆλ“œ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ 쀑볡 값이 μ œμ™Έλœ μƒˆλ‘œμš΄ 배열을 λ§Œλ“  ..
[JavaScript/section 4] 04 - μ‘Έμ—…μ„ λ¬Ό
Β·
Algorithm/μΈν”„λŸ°(inflearn)
πŸ“Œ 문제 μ„ μƒλ‹˜μ€ μ˜¬ν•΄ μ‘Έμ—…ν•˜λŠ” 반 ν•™μƒλ“€μ—κ²Œ 쑸업선물을 μ£Όλ €κ³  ν•œλ‹€. ν•™μƒλ“€μ—κ²Œ 인터넷 μ‡Όν•‘λͺ°μ—μ„œ 각자 μ›ν•˜λŠ” μƒν’ˆμ„ 골라 κ·Έ μƒν’ˆμ˜ 가격과 배솑비λ₯Ό μ œμΆœν•˜λΌκ³  ν–ˆλ‹€. μ„ μƒλ‹˜μ΄ 가지고 μžˆλŠ” μ˜ˆμ‚°μ€ ν•œμ •λ˜μ–΄ μžˆλ‹€. ν˜„μž¬ μ˜ˆμ‚°μœΌλ‘œ μ΅œλŒ€ λͺ‡ λͺ…μ˜ ν•™μƒμ—κ²Œ 선물을 사쀄 수 μžˆλŠ”μ§€ κ΅¬ν•˜λŠ” λ¬Έμ œμ΄λ‹€. μ„ μƒλ‹˜μ€ μƒν’ˆ ν•˜λ‚˜λ₯Ό 50% ν• μΈν•΄μ„œ(반 가격) μ‚΄ 수 μžˆλŠ” 쿠폰을 가지고 μžˆλ‹€. λ°°μ†‘λΉ„λŠ” 할인에 ν¬ν•¨λ˜μ§€ μ•ŠλŠ”λ‹€. πŸ“ 풀이 πŸ§‘πŸ»‍πŸ’» λ‚˜μ˜ 풀이 방법 price - μ§€λΆˆν•΄μ•Όν•  가격 각 학생듀이 κ³ λ₯Έ μƒν’ˆμ˜ 가격과 λ°°μ†‘λΉ„μ˜ 합을 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œλ‹€. λ°˜λ³΅λ¬Έμ„ 돌며 각 학생듀이 κ³ λ₯Έ μƒν’ˆμ— 할인을 λΆ€μ—¬ν•˜κ³  ν• μΈλœ μƒν’ˆμ˜ 가격과 λ°°μ†‘λΉ„μ˜ 합을 price에 μ €μž₯ν•œλ‹€. (였직 ν•˜λ‚˜μ˜ μƒν’ˆμ—λ§Œ 할인 λΆ€μ—¬) 할인 받은 μƒν’ˆμ„..
[JavaScript/section 4] 03 - λ©˜ν† λ§
Β·
Algorithm/μΈν”„λŸ°(inflearn)
πŸ“Œ 문제 ν˜„μˆ˜λ„€ 반 μ„ μƒλ‹˜μ€ 반 ν•™μƒλ“€μ˜ μˆ˜ν•™ 점수λ₯Ό ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ λ©˜ν† λ§ μ‹œμŠ€ν…œμ„ λ§Œλ“€λ €κ³  ν•œλ‹€. λ©˜ν† λ§μ€ λ©˜ν† (λ„μ™€μ£ΌλŠ” 학생)와 λ©˜ν‹°(도움을 λ°›λŠ” 학생)κ°€ ν•œ 짝이 λ˜μ–΄ λ©˜ν† κ°€ λ©˜ν‹°μ˜ μˆ˜ν•™ 곡뢀λ₯Ό λ„μ™€μ£ΌλŠ” 것이닀. μ„ μƒλ‹˜μ€ M번의 μˆ˜ν•™ν…ŒμŠ€νŠΈ λ“±μˆ˜λ₯Ό 가지고 λ©˜ν† μ™€ λ©˜ν‹°λ₯Ό μ •ν•œλ‹€. λ§Œμ•½ A학생이 λ©˜ν† μ΄κ³ , B학생이 λ©˜ν‹°κ°€ λ˜λŠ” 짝이 λ˜μ—ˆλ‹€λ©΄, A학생은 M번의 μˆ˜ν•™ν…ŒμŠ€νŠΈμ—μ„œ λͺ¨λ‘ B학생보닀 λ“±μˆ˜κ°€ μ•žμ„œμ•Ό ν•œλ‹€. M번의 μˆ˜ν•™ 성적이 주어지면 λ©˜ν† μ™€ λ©˜ν‹°κ°€ λ˜λŠ” 짝을 λ§Œλ“€ 수 μžˆλŠ” κ²½μš°κ°€ 총 λͺ‡ 가지 인지 좜λ ₯ν•˜λŠ” λ¬Έμ œμ΄λ‹€. πŸ“ 풀이 πŸ§‘πŸ»‍πŸ’» λ‚˜μ˜ 풀이 방법 M - 총 ν…ŒμŠ€νŠΈ 횟수, N - 반 학생 수 arr - 각 μΈλ±μŠ€λ§ˆλ‹€ λ©˜ν‹°κ°€ 될 수 μ—†λŠ” 학생을 μ €μž₯ν•  λ°°μ—΄(0번 μΈλ±μŠ€λŠ” 1번 학생을 λ©˜ν† λ‘œ ν–ˆμ„ κ²½..
[JavaScript/section 4] 02 - 뒀집은 μ†Œμˆ˜
Β·
Algorithm/μΈν”„λŸ°(inflearn)
πŸ“Œ 문제 N개의 μžμ—°μˆ˜κ°€ μž…λ ₯되면 각 μžμ—°μˆ˜λ₯Ό 뒀집은 ν›„ κ·Έ 뒀집은 μˆ˜κ°€ μ†Œμˆ˜μ΄λ©΄ κ·Έ μ†Œμˆ˜λ₯Ό 좜λ ₯ν•˜λŠ” λ¬Έμ œμ΄λ‹€. 예λ₯Ό λ“€μ–΄ 32λ₯Ό λ’€μ§‘μœΌλ©΄ 23이고, 23은 μ†Œμˆ˜μ΄λ‹€. 그러면 23을 좜λ ₯ν•œλ‹€. 단, 910을 λ’€μ§‘μœΌλ©΄ 19둜 μˆ«μžν™” ν•΄μ•Ό ν•œλ‹€. 첫 μžλ¦¬λΆ€ν„°μ˜ μ—°μ†λœ 0은 λ¬΄μ‹œν•œλ‹€. μ°Έκ³  사항 1️⃣ 2 이상인 μžμ—°μˆ˜λ₯Ό 2λΆ€ν„° ν•΄λ‹Ή μžμ—°μˆ˜μ˜ μ œκ³±κ·ΌκΉŒμ§€ λ‚˜λˆ„μ—ˆμ„ λ•Œ λ‚˜λ¨Έμ§€ κ°’μœΌλ‘œ 0이 λ‚˜μ˜€μ§€ μ•ŠλŠ”λ‹€λ©΄ ν•΄λ‹Ή μžμ—°μˆ˜λŠ” μ†Œμˆ˜μ΄λ‹€. 2️⃣ μˆ˜μ‹λ§Œμ„ μ΄μš©ν•˜μ—¬ μžμ—°μˆ˜λ₯Ό λ’€μ§‘λŠ” 방법 뒀집은 수λ₯Ό μ €μž₯ν•  resλ₯Ό 0으둜 μ΄ˆκΈ°ν™”ν•œλ‹€. μžμ—°μˆ˜(x)λ₯Ό 10으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€(t)λ₯Ό 가지고 λ‹€μŒ μˆ˜μ‹(res = res * 10 + t)의 κ²°κ³Όλ₯Ό res에 μ €μž₯ν•œλ‹€. μžμ—°μˆ˜λ₯Ό 10으둜 λ‚˜λˆˆ λͺ«μ„ μ •μˆ˜ν˜•μœΌλ‘œ λ³€ν™˜ν•œ ν›„ μžμ—°μˆ˜κ°€ μ €μž₯된 x..
[JavaScript/section 4] 01 - 자릿수의 ν•©
Β·
Algorithm/μΈν”„λŸ°(inflearn)
πŸ“Œ 문제 N개의 μžμ—°μˆ˜κ°€ μž…λ ₯되면 각 μžμ—°μˆ˜μ˜ 자릿수의 합을 κ΅¬ν•˜κ³ , κ·Έ 합이 μ΅œλŒ€μΈ μžμ—°μˆ˜λ₯Ό 좜λ ₯ν•˜λŠ” λ¬Έμ œμ΄λ‹€. 자릿수의 합이 같은 경우 μ›λž˜ μˆ«μžκ°€ 큰 숫자λ₯Ό λ‹΅μœΌλ‘œ ν•œλ‹€. λ§Œμ•½ 235와 1234κ°€ λ™μ‹œμ— 닡이 될 수 μžˆλ‹€λ©΄ 1234λ₯Ό λ‹΅μœΌλ‘œ 좜λ ₯ν•΄μ•Ό ν•œλ‹€. πŸ“ 풀이 πŸ§‘πŸ»‍πŸ’» λ‚˜μ˜ 풀이 방법 μž…λ ₯된 각 μžμ—°μˆ˜λ₯Ό String μ „μ—­ 객체λ₯Ό μ‚¬μš©ν•΄ λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•œλ‹€. split('') λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ μžλ¦Ώμˆ˜λ³„λ‘œ λ‚˜λˆ μ€€ ν›„ reduce() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 자릿수의 합을 κ΅¬ν•œλ‹€. max의 κ°’κ³Ό val의 값을 비ꡐ해 더 큰 값을 max에 μž¬ν• λ‹Ή ν•΄μ£Όκ³  ν•΄λ‹Ή μžμ—°μˆ˜λ₯Ό answer에 μž¬ν• λ‹Ήν•œλ‹€. λ§Œμ•½, 자릿수의 합이 같은 경우 μ›λž˜ 숫자λ₯Ό 비ꡐ해 더 큰 값을 answer에 μž¬ν• λ‹Ήν•œλ‹€. function solutio..
_μ„±ν˜Έ_
'완전탐색' νƒœκ·Έμ˜ κΈ€ λͺ©λ‘