์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
208
99ํด๋ฝ ์ฝํ
์คํฐ๋ 5์ผ์ฐจ TIL + Programmers ๋ฒ ์คํธ ์จ๋ฒ
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์KEY WORD: Sorting, HashMap์์
๊ฐ์ฒด๋ฅผ ๋ง๋ ๋ค. ( ๋ฉค๋ฒ ๋ณ์: ์์ ์ ๊ณ ์ ๋ฒํธ, ์ฅ๋ฅด, ํ๋ ์ด ํ์ )์
๋ ฅ ๊ฐ๋ค์ ์ ๋ถ ์์
๊ฐ์ฒด๋ก ๋ฐ๊ฟ์ ArrayList์ ์ถ๊ฐํ๋ค.HashMap์ ๋ง๋ ๋ค. Key = ์ฅ๋ฅด , value = ์ฅ๋ฅด์ ํด๋นํ๋ ๊ณก๋ค์ ํ๋ ์ด ์ดํฉ2๋ฒ์์ ๋ง๋ ArrayList๋ฅผ ์ ๋ ฌํ๋ค. ์ ๋ ฌ ๊ธฐ์ค์ ๋ฌธ์ ๊ทธ๋๋ก๋ค. -> Comparator๋ฅผ ๋จ์ํํ Lamda ์์ ์ด์ฉํด ๊ตฌํ๋ต๋ณ์ฉ ansList๋ฅผ ๋ง๋ค๊ณ , ๋ต๋ณ์ ์ฅ๋ฅด๋ณ๋ก ๋ช ๋ฒ ๋ค์ด๊ฐ๋์ง๋ฅผ ๋ํ๋ด๋ genreAddedCount๋ผ๋ HashMap๋ ํ๋ ๋ ๋ง๋ ๋ค.genreAddedCount๋ Key = ์ฅ๋ฅด, value = ์ฅ๋ฅด ๋ณ๋ก ๋ต๋ณ List์ ๋์จ ํ์ ์ด๋ค. .get..
2024.07.27
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
99ํด๋ฝ ์ฝํ
์คํฐ๋ 4์ผ์ฐจ TIL + Programmers ๋ฌธ์์ด ์์ถ
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์๋ถ๋ถ ๋ฌธ์์ด์ ํฌ๊ธฐ 1๋ถํฐ N/2๊น์ง๋ง ์๊ฐํ๋ฉด ๋๋ค. (N = ๋ฌธ์์ด์ ๊ธธ์ด)์๋ํ๋ฉด, ๋ถ๋ถ ๋ฌธ์์ด์ ํฌ๊ธฐ๊ฐ ์ ๋ฐ ์ด์์ด๋ฉด ๋ฐ๋ณต์ด ๋ถ๊ฐํ๋ฏ๋ก, ์ธ๋ ์๋ฏธ๊ฐ ์๋ค. 1๋ฒ์์ ์ ํ ๋ฌธ์์ด ํฌ๊ธฐ๋งํผ ์ฒ์๋ถํฐ ์๋ฅธ๋ค. ์ด ํ์๋ 0 ~ N - i ๊น์ง๋ง ๋ฐ๋ณตํ๋ค. ๋ถ๋ถ๋ฌธ์์ด์ ๊ตฌํ๋ substring(startIndex, endIndex)์์ endIndex๊ฐ ๋ฐฐ์ด์ ๋ฒ์๋ฅผ ๋์ด๊ฐ๋ฉด ์์ธ๊ฐ ๋ฐ์ํ๋ค. ์ฐ๋ฆฌ๋ substring(startIndex, startIndex+i)๋งํผ ํญ์ ํ ๊ฒ์ด๋ฏ๋ก, endIndex๊ฐ ๋ฐฐ์ด์ ๋ฒ์๋ฅผ ๋์ด์์ง ์๋๋ก ๋ฐ๋ณต์ ๋ฒ์๋ฅผ ์์ ๊ฐ์ด ์ ํ๋ค.์ต์ด ์๋ฅธ ๋ถ๋ถ ๋ฌธ์์ด์ ์ค๋ณต ์ฒดํฌ๊ฐ ๋ถ๊ฐํ๋ฏ๋ก ์ด์ ๋ฌธ์์ด(์ดํ prev)์ ์ ์ฅํ๋ค.์ด์ ๋ฌธ์์ด๊ณผ..
2024.07.25
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
[๋ฐฑ์ค] 1806 ๋ถ๋ถํฉ ํ์ด java
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ ๋ฐฉ์KEY WORD: ๊ตฌ๊ฐํฉ & ํฌ ํฌ์ธํฐ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ 10^5 ์ด๋ผ์ ์๊ฐ๋ณต์ก๋๊ฐ O(n^2) ์ด์์ด๋ฉด ์๋๋ค. ๋ฐ๋ผ์ ํ๋ฒ์ ์กฐํ์์ ๋ชจ๋ ๊ฒ์ ๋๋ด์ผ ํ๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์ ๋์ ํฉ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์๋ค. ์งํ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.์
๋ ฅ์ ๋์ ํฉ ๋ฐฐ์ด(sum) ํํ๋ก ๋ง๋ ๋ค. (๋ค๋ง ์ง์ง ๋์ ํฉ์ ์์์ sum[1] ๋ถํฐ ์์ํ๊ณ , sum[0]=0 ์ผ๋ก ๋น์๋๋ค.)left, right ํฌ์ธํฐ๋ฅผ ๋ง๋ค๊ณ ๋ค์๊ณผ ๊ฐ์ด ์์ง์ธ๋ค.(1) sum[right] - sum[left] (2) sum[right] - sum[left] == M ์ด๋ฉด (right-left) ๊ธธ์ด ๊ธฐ๋ก ํ์, right๋ฅผ ์์ง์ธ๋ค.(3) sum[right] - sum[left] > M ์ด๋ฉด (right -..
2024.07.24
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
99ํด๋ฝ ์ฝํ
์คํฐ๋ 3์ผ์ฐจ TIL + Programmers ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด java
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์KEY WORD: Brute forcekey=String, value=Integer์ธ map์ ๋ฌธ์๋ก ํํํ ์ซ์ =intํ ์ซ์๋ก 1~9๊น์ง ๋ชจ๋ ์ซ์๋ฅผ ์ ์ฅํ๋ค.ํฌ์ธํฐ๋ฅผ ํ๋ ์ฌ์ฉํ์ฌ ํด๋น ํฌ์ธํฐ๊ฐ ๊ฐ๋ฅดํค๋ ๊ฐ์ word ๋ StringBuilder์ ์ ์ฅํ๋ค.(1) word์ ๊ธธ์ด๊ฐ 3์ด์์ด๋ฉด map์ ํด๋น ๊ฐ์ key๋ก ๊ฐ์ง๋ ๊ฐ์ด ์๋ ๊ณ์ ํ์ธ(2) ์์ผ๋ฉด ํด๋น ์๋ฅผ ์ซ์๋ก ๋ฐ๊พธ์ด ๋ต๋ณ์ด ๋๋ ans์ ์ ์ฅํ๊ณ word๋ฅผ ๋น์ด๋ค.(3) ์์ผ๋ฉด ํฌ์ธํฐ๋ฅผ ํ ์นธ ์ด๋ํ์ฌ word๋ฅผ ๋ ์ฑ์ด๋ค.(4) ๋ง์ฝ ์ซ์๋ผ๋ฉด ans์ ๊ฐ ์ ์ฅํ๊ณ ๋ฐ๋ก ๊ฑด๋ ๋ฐ๊ธฐ.3. ์ฝ๋ ๋ถ์import java.io.*;import java.util.*;class Solution { ..
2024.07.24
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
[๋ฐฑ์ค] 1300 K๋ฒ์งธ ์ java ์ดํดํ๊ธฐ ์ฌ์ด ํ์ด^^ ๐
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์KEY WORD: BINARY_SEARCH์ด๋ฒ ๋ฌธ์ ์ ์ฃผ์ด์ง ๋ฐฐ์ด์ ํฌ๊ธฐ๋ 10^5์ด๋ค. ์ฃผ์ด์ง ์๊ฐ ์ ํ์ด 2์ด์ด๋ฏ๋ก, 2์ต ๋ฒ์ ์ฐ์ฐ ํ์ ๋ด์ ๋ฌธ์ ๋ฅผ ํ์ด์ผ ํ๋ค. ๋ง์ฝ ํด๋น ๋ฌธ์ ๋ฅผ ๋ธ๋ฃจํธ ํฌ์ค๋ก ์ ๊ทผํด, ๋ชจ๋ 2์ฐจ์ ๋ฐฐ์ด์ ๋๊ฒ ๋ค๊ณ ์๊ฐํ๋ฉด, ์ฐ์ฐ ํ์๊ฐ 10^5์ ์ ๊ณฑ์ธ 10 ์ต๋ฒ์ด ๋์ด ๋ฌธ์ ๋ฅผ ํ์ง ๋ชปํ๋ค.ํด๋น ๋ฌธ์ ๋ ์ด๋ถ ํ์(binary_search)์ ์ด์ฉํด ํ ์ ์๋ค. ๊ณ ๋๋ ์ด๋ถ ํ์ ๋ฌธ์ ๊ฐ ๋ ๊ทธ๋ ๋ฏ, ๋๋์ฒด ๋ญ์ ๋ํด์ ์ด๋ถ ํ์์ ํด์ผํ๋์ง ๊ฐ ์ก๊ธฐ๊ฐ ํ๋ค๋ค. ๊ทธ๋์ ๊ฑฐ๊ธฐ์ ๋ถํฐ ์์ ํ๊ฒ ๋ค.(1) ๋ฌด์์ ๋ํด์ ์ด๋ถ ํ์์ ํด์ผ ํ๋๊ฐ?๋จผ์ ๋ฌธ์ ์์ ์ฃผ์ด์ง B[]์ด๋ ๋ฐฐ์ด์ ๋ํด์ ์์๋ณผ ํ์๊ฐ ์๊ฒ ๋ค. B[k] = x ์ด๊ฒ์ด ๋ฌด์์ ๋ปํ..
2024.07.24
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ด๋ฌผ ์บ๊ธฐ ํ์ด java
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์KEY WORD: GREEDY Algorithm๊ด๋ฌผ์ ์บ๋ ๋น์ฉ์ ์ต์ํ ํ๊ธฐ ์ํด์๋, ๋ ๊ณก๊ดญ์ด๋ก ์บค์ ๋, ๋น์ฉ์ด ์ ์ผ ๋ง์ด ๋๋ ๊ตฌ๊ฐ์ด ์์ ์ค๋๋ก, ๊ด๋ฌผ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ๊ณ , ๊ตฌ๊ฐ๋ค์ ์ํํ๋ฉฐ, ๊ทธ๋ ๊ทธ๋ ์ต์ ์ ๊ณก๊ดญ์ด๋ก ์ผ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค.๊ทธ ์๋ฏธ์์ Greedy Algorithm์ ์จ์ผ ํ๋ ๊ฒ์ด๋ค.๊ด๋ฌผ์ ํฌ๊ธฐ๊ฐ 50๋ฐ์ ์๋จ์ผ๋ก ์๊ฐ๋ณต์ก๋ ๊ด๋ จํด์ ๊ฑฑ์ ํ ๊ฒ์ ์์ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ ๋ค๋ฉด ํด์ผํ ์ผ์,๊ด๋ฌผ List๋ฅผ 5๊ฐ์ฉ ์๋ฅธ๋ค. ๊ทธ๊ฒ์ด ์ผ์ ๋จ์์ด๊ธฐ ๋๋ฌธ์ด๋ค.(๊ทผ๋ฐ ๊ด๋ฌผ์ด 5์ ๋ฐฐ์๋ก ์ ๋ง์ ๋จ์ด์ง ์ ์๋ค. ๊ทธ๋ฌ๋ฉด ๋งจ ๋ง์ง๋ง์ 3๊ฐ๋ 4๊ฐ๊ฐ ํ๋์ ๋ฌถ์์ด ๋ ์๋ ์์์ผ๋ก ์ด๋ฅผ ์ฃผ์ํด์ Loop๋ฅผ ์ง ๋ค.)๋๋ ์ง ๊ด๋ฌผ ๋ฌถ์์ ๋ ๊ณก๊ดญ์ด๋ก ์์
ํ์ ๋ ํผ๋ก..
2024.07.23
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
[๋ฐฑ์ค] 2075 N๋ฒ์งธ ํฐ ์ java ํ์ด (ํ์ด 2๊ฐ)
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์key word: Priority QueueN*N๊ฐ์ ์ ์ค N ๋ฒ์งธ ํฐ ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ค.๊ทธ๋์ ๋๋ ์ค๋ฆ ์ฐจ์ PriorityQueue๋ฅผ ๋ง๋ค์ด์ ํด๋น queue์ size๋ฅผ N๊ฐ๋ก ์ ์งํ๋ค. ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.๋งจ ๋ง์ง๋ง ํ์ ๊ฐ N๊ฐ๋ฅผ PQ์ ๋ด๋๋ค. (๋งจ ๋ง์ง๋ง ํ์ ๊ฐ ์ด ๋ณ๋ก ์ต๊ณ ๊ฐ ์ด๋ค.)๋ฐฐ์ด์ ํ ํ์ฉ ์ฌ๋ผ๊ฐ์ ๊ฐ๋ค์ Priority Queue์ peek()๊ฐ๊ณผ ๋น๊ตํ๋ค.(1) peek() ํ ์กฐํ ์ค์ธ ๊ฐ: peek()์ poll() ํด์ ๋ฒ๋ฆฌ๊ณ , ํ ์กฐํ์ค์ธ ๊ฐ์ PQ์ ๋ฃ๋๋ค.(2) peek() >= ํ ์กฐํ ์ค์ธ ๊ฐ: PQ๋ฅผ N๊ฐ๋ก ์ ์งํ๋ ์ด์ ๋ N๋ฒ์งธ ํฐ์๋ฅผ ์ฐพ๊ธฐ ์ํด์ ์ด๋ค. ํ์ฌ๋ PQ ์์ ์ต์๊ฐ๋ณด๋ค ์์ผ๋ฏ๋ก N๋ฒ์งธ ํฐ ์๊ฐ ๋๊ธฐ ๋ง..
2024.07.23
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
99ํด๋ฝ ์ฝํ
์คํฐ๋ 2์ผ์ฐจ TIL + Programmers ์ซ์ ์นด๋ ๋๋๊ธฐ ํ์ด java
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์keyword: GCD(์ต๋ ๊ณต์ฝ์) ๊ตฌํ๋ ๋ฒ - ์ ํด๋ฆฌ๋ ํธ์ ๋ฒArrayA์ ArrayB์ ์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค. ์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. ๋งจ ์ฒ์ ๊ฐ๊ณผ ๋ ๋ฒ์งธ ๊ฐ ๊ฐ์ ์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค. (์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ์ด์ฉ)1๋ฒ์์ ๋์จ GCD์ ์ธ ๋ฒ์งธ ๊ฐ๊ฐ์ ์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค.(์ ์ด๋ ๊ฒ ๊ตฌํด๋ ๋๋๊ฑฐ์ผ? - 1๋ฒ์์ ๋์จ GCD๋ ์ด๋ฏธ 1 ๋ฒ์งธ ๊ฐ๊ณผ 2 ๋ฒ์งธ ๊ฐ์์์ ์ต๋ ๊ณต์ฝ์ ์ด๋ค.๋ง์ฝ ํด๋น GCD๋ก 3 ๋ฒ๊ฐ์ด ๋ฐ๋ก ๋๋์ด์ง๋ค๋ฉด, GCD๊ฐ 1,2๋ฒ๊ณผ ๊ฐ์ ๊ฒ์ด๋ฏ๋ก, ๊ทธ๋๋ก ๊ฐ๋ ๋๋ค.๋ง์ฝ GCD๊ฐ ๋ ์์์ง๋ค๋ฉด, ํด๋น ๊ฐ์ด ํ์ฌ๊น์ง 3๊ฐ์ง ๊ฐ์์ ํตํ๋ GCD ์ธ ๊ฒ์ด๋ค.์ด๋ฐ ์์ผ๋ก GCD๋ฅผ ๊ฐฑ์ ํด ๋๊ฐ๋ฉด, ๋ชจ๋ ๊ฐ์์ ํตํ๋ GCD๋ฅผ ๊ตฌํ ..
2024.07.23
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด