๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 479

๐Ÿ“‚ [์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ(Stack)

์Šคํƒ(Stack) ์ด๋ž€? ์Šคํƒ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์Šคํƒ์˜ LIFO(Last In First Out / First In Last Out) ์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ  ํ•ด๋„ ๋ฌด๋ฐฉํ•  ๋งŒํผ ๋งค์šฐ ๋งŽ์ด ์“ฐ์ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์Šค๋งˆํŠธํฐ์—์„œ '๋’ค๋กœ ๊ฐ€๊ธฐ' ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ํ˜„์žฌ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์•ฑ์ด ์ข…๋ฃŒ๋˜๊ณ  ์ง์ „์˜ ์•ฑ์ด ๋‚˜ํƒ€๋‚˜๋Š”๋ฐ ์ด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ์Šคํƒ์ž…๋‹ˆ๋‹ค. ์Šคํƒ์˜ ๊ตฌ์กฐ์™€ ์‚ฌ์šฉ ์Šคํƒ์€ ๋งˆ์ง€๋ง‰์— ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์Šคํƒ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜๋กœ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ pop / push / peek / isFull / isEmpty ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Push() : ์Šคํƒ์— ๊ฐ’์„ ๋„ฃ๋Š” ํ•จ์ˆ˜ Pop() : ์Šคํƒ์˜ Top ์œ„์น˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜..

๐ŸŸจ [Java] ๋ฌผํ’ˆ ์žฌ๊ณ  ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ

๋ฌผํ’ˆ ์žฌ๊ณ  ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ ์•„์ง ํด๋ž˜์Šค์™€ ์ƒ์†์„ ๋ฐฐ์šฐ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์žฌ๊ณ  ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•˜์ž. ์›๋ž˜ DB๋ฅผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๊ณผ์ •์œผ๋กœ๋Š” ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๊ณผ์ •์€ ์กฐ๊ธˆ ๋” ๋ฐฐ์šฐ๊ณ  ๋‚˜๋ฉด ๊ด€๋ฆฌ์ž์™€ ๊ตฌ๋งค์ž๋ฅผ ๋‚˜๋ˆ„๊ณ  DB๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ์ œ๋Œ€๋กœ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋‹ค์‹œ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด์ž. static final int MAX = 100; // ๋ฐฐ์—ด ์ตœ๋Œ€ ํฌ๊ธฐ static int[] productNumber = new int[MAX]; // ๋ฌผํ’ˆ ๋ฒˆํ˜ธ static String[] productName = new String[MAX]; // ๋ฌผํ’ˆ ์ด๋ฆ„ static int[] productPrice = new int[MAX]; // ๋ฌผํ’ˆ ๊ฐ€๊ฒฉ static ..

๐ŸŸจ [Java] (static)์ •์  ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ

Static ์ด๋ž€? Java์—์„œ Static ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ๋ฒˆ ํ• ๋‹น๋˜์–ด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ์—†์–ด์ง€๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•ด ์ดํ•ด๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์กฐ๊ธˆ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑํ•œ Class๋Š” Static ์˜์—ญ์— ์ƒ์„ฑ์ด ๋˜๊ณ , new ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋Š” Heap์˜์—ญ์— ํ• ๋‹น์ด ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ  ๋•Œ๋ฌธ์— String ํด๋ž˜์Šค์˜ ๋น„๊ต๋ฅผ ๋™๋“ฑ์—ฐ์‚ฐ์ž(==, !=) ์ด ์•„๋‹Œ equal()์„ ํ†ตํ•ด ๋น„๊ต๋ฅผ ํ•œ๋‹ค. ์Šคํƒ์—์„œ ํด๋ž˜์Šค์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๋ฌธ์ž์—ด ์ด๋”๋ผ๋„ ๋™๋“ฑ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅด๋‹ค๊ณ  ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด์˜ ์ƒ์„ฑ์‹œ ํ• ๋‹น๋œ Heap ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” GC(Garbage Collector)๋ฅผ ํ†ตํ•ด ์ˆ˜์‹œ๋กœ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›๋Š”๋‹ค. ํ•˜์ง€๋งŒ Static ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด Static ์˜์—ญ์— ..

โฌ› [Programmers] [Python] [Level2] ํ”ผ๋กœ๋„

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/87946 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ํ”ผ๋กœ๋„ from itertools import permutations from collections import deque def solution(k, dungeons): answer = 0 for p in permutations(dungeons, len(dungeons)): tmp = k cnt = 0 for need, spend in p: if tmp >=..

โฌ› [Programmers] [Python] [Level3] ์ตœ๊ณ ์˜ ์ง‘ํ•ฉ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12938 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 3๋‹จ๊ณ„ - ์ตœ๊ณ ์˜ ์ง‘ํ•ฉ def solution(n, s): answer = [] if s < n: return [-1] for i in range(n): answer.append(s//n) idx = len(answer) - 1 for j in range(s % n): answer[idx] += 1 idx -= 1 return answer print(solution(2,..

โฌ› [Programmers] [Python] Level2_์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/131701 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜ def solution(elements): result = set() elements_length = len(elements) elements = elements * 2 for i in range(elements_length): for j in range(elements_length): result.add(sum(elements[j..

โฌ› [Programmers] [Python] Level2_์œ„์žฅ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/42578 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์œ„์žฅ def solution(clothes): answer = 1 dic = {} for v, k in clothes: if not k in dic: # ์ฒ˜์Œ์ผ ๊ฒฝ์šฐ ๋”•์…”๋„ˆ๋ฆฌ ์ดˆ๊ธฐํ™” dic[k] = 0 dic[k] += 1 for v in dic.values(): answer *= v + 1 return answer - 1

โฌ› [Programmers] [Python] Level2_๊ทค ๊ณ ๋ฅด๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=python3 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ๊ทค ๊ณ ๋ฅด๊ธฐ from collections import Counter def solution(k, tangerine): answer = 0 d = sorted(Counter(tangerine).items(), key = lambda x : -x[1]) for key, value in d: if k

๐ŸŸจ [Java] ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object Oriented Programming)

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€? ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์งœ๋Š” ๊ฒƒ. ์—ฌ๊ธฐ์„œ ๊ฐ์ฒด๋ž€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด ์ž๋™์ฐจ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ž๋™์ฐจ์— ๋“ค์–ด๊ฐ€๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ถ€ํ’ˆ๋“ค์ด ์žˆ๋‹ค. ํ•ธ๋“ค, ํƒ€์ด์–ด, ์—”์ง„ ๋“ฑ๋“ฑ ์ด๋Ÿฌํ•œ ๋ถ€ํ’ˆ๋“ค์ด ๋ชจ๋‘ ๊ฐ์ฒด๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋“ค์ด ๋ชจ์—ฌ ์ž๋™์ฐจ๋ฅผ ์ด๋ฃจ๊ฒŒ ๋œ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ–๋Š” ์žฅ์  ์ค‘ ํ•˜๋‚˜์ธ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค๋Š” ์ ์ด ์ด ๋ถ€๋ถ„์—์„œ ๋“œ๋Ÿฌ๋‚˜๊ฒŒ ๋œ๋‹ค. ํ•ธ๋“ค์ด๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์–ด๋– ํ•œ ์ž๋™์ฐจ์—์„œ ๊ฐ€์ ธ๊ฐ€ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด ์žฌ์‚ฌ์šฉ์ด ์šฉ์ดํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์ด ์ ๊ฒŒ ๋“ค์–ด๊ฐ„๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง• ์ถ”์ƒํ™” ๊ฐ์ฒด์—์„œ ๊ณตํ†ต๋œ ์†์„ฑ๊ณผ ํ–‰์œ„๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ ์‹ค์ œ ์„ธ์ƒ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๊ฒŒ, ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค๋งŒ ๊ฐ€์ ธ์™€์„œ ๋‹จ์ˆœํ™” ํ•˜๋Š” ๊ฒƒ. ์‹ค์ œ๋ฅผ ๊ฐ์ฒดํ™” ํ•˜๋Š” ๊ฒƒ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold4] 15683๋ฒˆ_๊ฐ์‹œ

๋ฌธ์ œ https://www.acmicpc.net/problem/15683 15683๋ฒˆ: ๊ฐ์‹œ ์Šคํƒ€ํŠธ๋งํฌ์˜ ์‚ฌ๋ฌด์‹ค์€ 1×1ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋Š” N×M ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ๋ฌด์‹ค์—๋Š” ์ด K๊ฐœ์˜ CCTV๊ฐ€ ์„ค์น˜๋˜์–ด์ ธ ์žˆ๋Š”๋ฐ, CCTV๋Š” 5๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ๊ฐ CCTV๊ฐ€ ๊ฐ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 15683๋ฒˆ ๋ฌธ์ œ - ๊ฐ์‹œ import sys; input = sys.stdin.readline import copy # CCTV ์ข…๋ฅ˜๋ณ„, ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ๋ณ„ ๊ฐ์‹œ์˜์—ญ ์žฌ๊ท€์  ํƒ์ƒ‰ def dfs(graph, depth): global answer # ์ข…๋ฃŒ ์กฐ๊ฑด: ๋ชจ๋“  CCTV ํƒ์ƒ‰ if depth == len(cctv_list): # ์‚ฌ๊ฐ์ง€๋Œ€ ์ตœ์†Ÿ๊ฐ’ answer = mi..