Algorithms

    [JS] λ°±μ€€ 10841번 : λ‚˜μ΄μˆœ μ •λ ¬

    [JS] λ°±μ€€ 10841번 : λ‚˜μ΄μˆœ μ •λ ¬

    Question λ°±μ€€ 10841번 : λ‚˜μ΄μˆœ μ •λ ¬ 온라인 저지에 κ°€μž…ν•œ μ‚¬λžŒλ“€μ˜ λ‚˜μ΄μ™€ 이름이 κ°€μž…ν•œ μˆœμ„œλŒ€λ‘œ 주어진닀. μ΄λ•Œ, νšŒμ›λ“€μ„ λ‚˜μ΄κ°€ μ¦κ°€ν•˜λŠ” 순으둜, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ λ¨Όμ € κ°€μž…ν•œ μ‚¬λžŒμ΄ μ•žμ— μ˜€λŠ” μˆœμ„œλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 10814번: λ‚˜μ΄μˆœ μ •λ ¬ 온라인 저지에 κ°€μž…ν•œ μ‚¬λžŒλ“€μ˜ λ‚˜μ΄μ™€ 이름이 κ°€μž…ν•œ μˆœμ„œλŒ€λ‘œ 주어진닀. μ΄λ•Œ, νšŒμ›λ“€μ„ λ‚˜μ΄κ°€ μ¦κ°€ν•˜λŠ” 순으둜, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ λ¨Όμ € κ°€μž…ν•œ μ‚¬λžŒμ΄ μ•žμ— μ˜€λŠ” μˆœμ„œλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ www.acmicpc.net μž…λ ₯ 첫째 쀄에 온라인 저지 νšŒμ›μ˜ 수 N이 주어진닀. (1 ≤ N ≤ 100,000) λ‘˜μ§Έ 쀄뢀터 N개의 μ€„μ—λŠ” 각 νšŒμ›μ˜ λ‚˜μ΄μ™€ 이름이 곡백으둜 κ΅¬λΆ„λ˜μ–΄ 주어진닀. λ‚˜μ΄λŠ” 1보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©°, 200보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜..

    [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..

    [μ•Œκ³ λ¦¬μ¦˜ κΈ°λ³Έ] μ™„μ „ 탐색 (브루트 포슀 Brute Force)

    [μ•Œκ³ λ¦¬μ¦˜ κΈ°λ³Έ] μ™„μ „ 탐색 (브루트 포슀 Brute Force)

    μ™„μ „ 탐색, 브루트 포슀(Brute Force) Brute Force μ§μ—­ν•˜λ©΄ μ§μŠΉκ°™μ€ 힘, λ¬΄μ‹ν•œ νž˜μ΄λΌλŠ” λœ»μ΄λ‹€. μ™„μ „ νƒμƒ‰μ΄λΌλŠ” μ΄λ¦„μ—μ„œλ„ μ•Œ 수 μžˆλ“―μ΄ ν•˜λ‚˜λΆ€ν„° μ—΄κΉŒμ§€ λͺ¨λ“  경우λ₯Ό λ‹€ νƒμƒ‰ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. λͺ¨λ“  경우λ₯Ό νƒμƒ‰ν•˜λ‹ˆ λ‹Ήμ—°νžˆ 정닡을 찾을 수 μžˆλ‹€. 완전탐색 μ˜ˆμ‹œ 3자리둜 κ΅¬μ„±λœ μžλ¬Όμ‡ μ˜ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ°ΎκΈ° μœ„ν•΄ 000 ~ 999κΉŒμ§€ λͺ¨λ“  경우의 수λ₯Ό μž…λ ₯ν•΄λ³΄λŠ” 것을 μƒκ°ν•˜λ©΄ μ΄ν•΄ν•˜κΈ° 쉽닀. 999κΉŒμ§€ μž…λ ₯ν•  것을 μƒκ°ν•˜λ©΄ λ²Œμ¨λΆ€ν„° λͺΈμ‚΄μ΄ λ‚œλ‹€. μ™œλƒ? λ”λŸ½κ²Œ 였래 걸리기 λ•Œλ¬Έμ΄λ‹€. (This is κ²½ν—˜λ‹΄) μ—¬κΈ°μ„œ 완전탐색 μ•Œκ³ λ¦¬μ¦˜μ˜ μž₯점과 단점을 μ•Œ 수 μžˆλ‹€. 완전탐색 μž₯점 & 단점 μž₯점 λͺ¨λ“  경우λ₯Ό λ‹€ κ³ λ €ν•˜κΈ° λ•Œλ¬Έμ— ν™•μ‹€ν•œ 정닡을 찾을 수 μžˆλ‹€. λ³΅μž‘ν•œ μ•Œκ³ λ¦¬μ¦˜ 없이 λΉ λ₯΄κ²Œ κ΅¬ν˜„μ΄ κ°€λŠ₯..

    [JS] λ°±μ€€ 1931 번 : νšŒμ˜μ‹€ λ°°μ •(feat.그리디 μ•Œκ³ λ¦¬μ¦˜)

    [JS] λ°±μ€€ 1931 번 : νšŒμ˜μ‹€ λ°°μ •(feat.그리디 μ•Œκ³ λ¦¬μ¦˜)

    Question λ°±μ€€ 1931번 : νšŒμ˜μ‹€ λ°°μ • ν•œ 개의 νšŒμ˜μ‹€μ΄ μžˆλŠ”λ° 이λ₯Ό μ‚¬μš©ν•˜κ³ μž ν•˜λŠ” N개의 νšŒμ˜μ— λŒ€ν•˜μ—¬ νšŒμ˜μ‹€ μ‚¬μš©ν‘œλ₯Ό λ§Œλ“€λ €κ³  ν•œλ‹€. 각 회의 I에 λŒ€ν•΄ μ‹œμž‘μ‹œκ°„κ³Ό λλ‚˜λŠ” μ‹œκ°„μ΄ μ£Όμ–΄μ Έ 있고, 각 νšŒμ˜κ°€ κ²ΉμΉ˜μ§€ μ•Šκ²Œ ν•˜λ©΄μ„œ νšŒμ˜μ‹€μ„ μ‚¬μš©ν•  수 μžˆλŠ” 회의의 μ΅œλŒ€ 개수λ₯Ό μ°Ύμ•„λ³΄μž. 단, νšŒμ˜λŠ” ν•œλ²ˆ μ‹œμž‘ν•˜λ©΄ 쀑간에 쀑단될 수 μ—†μœΌλ©° ν•œ νšŒμ˜κ°€ λλ‚˜λŠ” 것과 λ™μ‹œμ— λ‹€μŒ νšŒμ˜κ°€ μ‹œμž‘λ  수 μžˆλ‹€. 회의의 μ‹œμž‘μ‹œκ°„κ³Ό λλ‚˜λŠ” μ‹œκ°„μ΄ 같을 μˆ˜λ„ μžˆλ‹€. 이 κ²½μš°μ—λŠ” μ‹œμž‘ν•˜μžλ§ˆμž λλ‚˜λŠ” κ²ƒμœΌλ‘œ μƒκ°ν•˜λ©΄ λœλ‹€. 1931번: νšŒμ˜μ‹€ λ°°μ • (1,4), (5,7), (8,11), (12,14) λ₯Ό μ΄μš©ν•  수 μžˆλ‹€. www.acmicpc.net μž…λ ₯ 첫째 쀄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진닀...

    [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? ..

    [μ•Œκ³ λ¦¬μ¦˜ κΈ°λ³Έ] νƒμš•(Greedy) μ•Œκ³ λ¦¬μ¦˜

    [μ•Œκ³ λ¦¬μ¦˜ κΈ°λ³Έ] νƒμš•(Greedy) μ•Œκ³ λ¦¬μ¦˜

    1. νƒμš• μ•Œκ³ λ¦¬μ¦˜ (Greedy Algorithms) νƒμš•(Greedy)은 말 κ·ΈλŒ€λ‘œ μ§€λ‚˜μΉ˜κ²Œ μš•μ‹¬μ΄ λ§Žλ‹€λŠ” λœ»μ΄λ‹€. κ·Έλ ‡λ‹€λ©΄ νƒμš•μ•Œκ³ λ¦¬μ¦˜μ€ λ¬΄μ—‡μΌκΉŒ? 미래λ₯Ό μƒκ°ν•˜μ§€ μ•Šκ³  ν˜„μž¬μ˜ λ‹¨κ³„μ—μ„œ κ°€μž₯ μ΅œμ„ μ˜ 선택을 ν•˜λŠ” 것을 νƒμš•μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³  ν•œλ‹€. λ™μ ν”„λ‘œκ·Έλž˜λ°μ€ κ°„λ‹¨ν•œ ν”„λ‘œκ·Έλž˜λ°μ— μ‚¬μš© μ‹œ λ§Žμ€ 단계λ₯Ό 거쳐 μ‚¬μš©λΌ λΉ„νš¨μœ¨μ μ΄λ‹€. (λ™μ ν”„λ‘œκ·Έλž˜λ° : 경우의 수λ₯Ό λͺ¨λ‘ κ²€ν† ν•΄ 점화식을 톡해 ꡬ성) λ™μ ν”„λ‘œκ·Έλž˜λ°μ„ λŒ€μ²΄ν•˜λŠ” 것은 μ•„λ‹ˆκ³  λ™μ ν”„λ‘œκ·Έλž˜λ°κ³Ό 같이 상황에 맞게 μ“°μ΄λŠ” 것이 νƒμš•μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. 2. νƒμš•μ•Œκ³ λ¦¬μ¦˜μ˜ 성립 쑰건 νƒμš•μ  선택 속성(Greedy Choice Property) : νƒμš•μ  선택이 전체 문제의 μ΅œμ ν•΄λ₯Ό ꡬ할 수 μžˆλ‹€ , μ•žμ˜ 선택이 λ‹€μŒ μ„ νƒμ˜ 영ν–₯을 주지 μ•ŠλŠ”λ‹€. 졜적 λΆ€λΆ„ ꡬ쑰(O..

    [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 ++)..