๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

java

[Algorithm/Java][ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ https://programmers.co.kr/learn/courses/30/lessons/12917 ๋ฌธ์ œ์ ‘๊ทผ ๋ฌธ์ž์—ด s๋ฅผ char[] ๋ฐฐ์—ด๋กœ ๋„ฃ์–ด์„œ Arrays.sort๋ฅผ ์ด์šฉํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋’ค ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๋ฐฐ์—ด temp๋ฅผ ์—ญ์ˆœ์œผ๋กœ result์— ํ•˜๋‚˜์”ฉ ๋”ํ•ด์ฃผ์—ˆ๋‹ค. Code import java.util.*; class Solution { public String solution(String s) { char[] temp = s.toCharArray(); Arrays.sort(temp); StringBuilder result = new StringBuilder(); for(int i= temp.length-1; i>=0; i--){ resul.. ๋”๋ณด๊ธฐ
[Algorithm/Java][LeetCode] 20. Valid Parentheses [LeetCode] 20. Valid Parentheses https://leetcode.com/problems/valid-parentheses/ ๋ฌธ์ œ์ ‘๊ทผ ๊ด„ํ˜ธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ธ์ง€ ์ž˜ ๋‹ซํžˆ๊ณ  ์—ด๋ ธ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋น„์Šทํ•œ(๋˜‘๊ฐ™์€) ๋ฌธ์ œ๋ฅผ ๋ฐฑ์ค€์—์„œ ํ’€์–ด๋ด์„œ Stack์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค. ์—ฌ๋Š” ๊ด„ํ˜ธ์ผ ๋•Œ๋Š” Stack์— push๋ฅผ ํ•ด์ฃผ๊ณ  ๋‹ซํžŒ ๊ด„ํ˜ธ์ผ ๋•Œ๋Š” Stack์— top์ด ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๊ด„ํ˜ธ์ธ์ง€ ํ™•์ธํ•˜๊ณ  popํ•˜๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ผ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค. ์ด๋•Œ ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•  ์ƒํ™ฉ์€ 2๊ฐ€์ง€์ด๋‹ค. ์—ด๋ฆฐ ๊ด„ํ˜ธ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ์„๋•Œ. ๋‹ซํžŒ ๊ด„ํ˜ธ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ์„๋•Œ. 1๋ฒˆ์ฒ˜๋Ÿผ ์—ด๋ฆฐ ๊ด„ํ˜ธ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค๋ฉด for๋ฌธ์„ ๋น ์ ธ๋‚˜์™”์„ ๋•Œ Stack์ด ๋น„์–ด์žˆ์ง€ ์•Š์„ ๊ฒƒ์ด๊ณ , 2๋ฒˆ์ฒ˜๋Ÿผ ๋‹ซํžŒ ๊ด„ํ˜ธ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค๋ฉด sw.. ๋”๋ณด๊ธฐ
[Algorithm/Java][BOJ] 1439๋ฒˆ ๋’ค์ง‘๊ธฐ [BOJ] 1439๋ฒˆ ๋’ค์ง‘๊ธฐ https://www.acmicpc.net/problem/1439 ๋ฌธ์ œ์ ‘๊ทผ 0์ด ๊ฐ™์ด ์žˆ๋Š” ๊ทธ๋ฃน๊ณผ 1์ด ๊ฐ™์ด ์žˆ๋Š” ๊ทธ๋ฃน์ด ๋ช‡ ๊ทธ๋ฃน์ธ์ง€ ์„ธ๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์ฒ˜์Œ์—๋Š” 0์—์„œ 1๋กœ ๋ฐ”๋€Œ๋Š” ๋ถ€๋ถ„์—์„œ cnt์— +1์„ ํ•ด์ค€๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ๊ทธ๋ฃน์„ ๋‹ค ์„ธ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋‹ต์ด ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ zeroGroup๊ณผ oneGroup์„ ์ด์šฉํ•ด์„œ ๊ฐ์ž ๋”ฐ๋กœ๋”ฐ๋กœ ํ•˜๋‚˜์”ฉ ์„ธ์„œ ๋” ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•ด ์ฃผ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ์žˆ๋Š” ๊ทธ๋ฃน์€ ์ฒ˜์Œ ๋กœ์ง์œผ๋กœ๋Š” ์นด์šดํŠธ๊ฐ€ ์•ˆ๋˜์„œ for๋ฌธ ๋งˆ์ง€๋ง‰์ผ ๋•Œ ํ˜„์žฌ cur๊ฐ’์˜ group์— +1์„ ํ•ด์ฃผ์—ˆ๋‹ค. Code import java.util.Scanner; public class Main { public static void main(String[] a.. ๋”๋ณด๊ธฐ
[Java] ์ž๋ฐ” ์ปฌ๋ ‰์…˜ Map Map์ด๋ž€? Map์€ ํ‚ค(key)์™€ ๊ฐ’(value)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ์ปฌ๋ ‰์…˜์ด๋‹ค. ํŠน์ง•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ํ‚ค์™€ ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค. ํ‚ค๊ฐ€ ์—†์ด ๊ฐ’๋งŒ ์ €์žฅ๋  ์ˆ˜๋Š” ์—†๋‹ค. ๊ฐ’ ์—†์ด ํ‚ค๋งŒ ์ €์žฅํ•  ์ˆ˜๋„ ์—†๋‹ค. ํ‚ค๋Š” ํ•ด๋‹น Map์—์„œ ๊ณ ์œ ํ•ด์•ผ๋งŒ ํ•œ๋‹ค. ๊ฐ’์€ Map์—์„œ ์ค‘๋ณต๋˜์–ด๋„ ์ƒ๊ด€ ์—†๋‹ค. Map ๋ฉ”์†Œ๋“œ ๋ฆฌํ„ด ํƒ€์ž… ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค๋ช… V put(K key, V value) ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ ๋ณ€์ˆ˜์ธ ํ‚ค๋ฅผ ๊ฐ–๋Š”, ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ ๊ฐ’์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. V get(Object key) ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋„˜๊ฒจ์ค€๋‹ค. V remove(Object key) ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ๋ฉฐ, ํ•ด๋‹น ํ‚ค์™€ ๊ฐ’์„ ์‚ญ์ œํ•œ๋‹ค. Set keySet() ํ‚ค์˜ ๋ชฉ๋ก์„ Set ํƒ€์ž…์œผ๋กœ ๋„˜๊ฒจ์ค€๋‹ค. Collectio.. ๋”๋ณด๊ธฐ
[Java] ์ž๋ฐ” ์ปฌ๋ ‰์…˜ Set ์…‹(Set)์ด๋ž€? Set์€ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด, ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ , ์›ํ•˜๋Š” ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ฃผ ์šฉ๋„์ด๋‹ค. HashSet: ์ˆœ์„œ๊ฐ€ ์ „ํ˜€ ํ•„์š” ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•œ๋‹ค. Set ์ค‘์— ๊ฐ€์žฅ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค. TreeSet: ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์— ๋”ฐ๋ผ์„œ ์ •๋ ฌ๋˜๋Š” ์…‹์ด๋‹ค. red-black ํŠธ๋ฆฌ๋กœ ๊ฐ’์ด ์ €์žฅ๋˜๋ฉฐ, HashSet๋ณด๋‹ค ์•ฝ๊ฐ„ ์„ฑ๋Šฅ์ด ๋Š๋ฆฌ๋‹ค. LinkedHashSet: ์—ฐ๊ฒฐ๋œ ๋ชฉ๋ก ํƒ€์ž…์œผ๋กœ ๊ตฌํ˜„๋œ ํ•ด์‹œ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ €์žฅ๋œ ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ๊ฐ’์ด ์ •๋ ฌ๋œ๋‹ค. ๋Œ€์‹  ์„ฑ๋Šฅ์ด ์…‹ ์ค‘์—์„œ ๊ฐ€๋‚ญ ๋Š๋ฆฌ๋‹ค. HashSet HashSet ์ฃผ์š” ๋ฉ”์†Œ๋“œ ๋ฆฌํ„ด ํƒ€์ž… ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ ๋ฐ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค๋ช… boolean add(.. ๋”๋ณด๊ธฐ
[Java] String ํด๋ž˜์Šค ์ •๋ฆฌ String ํด๋ž˜์Šค ์ •๋ฆฌ ์ž๋ฐ”์˜ ์‹ ์„ ์ฝ์œผ๋ฉด์„œ ๋‚˜์˜จ String ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •๋ฆฌํ–ˆ๋‹ค. ๋” ๋งŽ์€ ๋ฉ”์†Œ๋“œ๋“ค๊ณผ ์ž์„ธํ•œ ์„ค๋ช…์ด ์žˆ์ง€๋งŒ ๋งŽ์ด ์‚ฌ์šฉํ•  ๊ฒƒ ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๋“ค ์œ„์ฃผ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฉ”์†Œ๋“œ ๋ฌธ์ž์—ด์ด ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฉ”์†Œ๋“œ ๋ฌธ์ž์—ด์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๋Š” ๋ฉ”์†Œ๋“œ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ๋ฌธ์ž์—ด์ด ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฉ”์†Œ๋“œ String๋‚ด์—์„œ ์œ„์น˜๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋ฉ”์†Œ๋“œ String์—์„œ ์ผ๋ถ€๋ฅผ ์ถ”์ถœํ•˜๋Š”(์ž˜๋ผ์ฃผ๋Š”) ๋ฉ”์†Œ๋“œ String ๊ณต๋ฐฑ์„ ์—†์• ๋Š” ๋ฉ”์†Œ๋“œ String ๋‚ด์šฉ์„ ๊ต์ฒดํ•˜๋Š” ๋ฉ”์†Œ๋“œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ฐ”๊พธ๋Š” ๋ฉ”์†Œ๋“œ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ StringBuffer์™€ StringBuilder ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฉ”์†Œ๋“œ ๋ฆฌํ„ด ํƒ€์ž… ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ ๋ฐ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค๋ช… int length() ๋ฌธ.. ๋”๋ณด๊ธฐ
[Java] ์ƒ์†์ด๋ž€? ์ƒ์† ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค์–ด ๋†“๋Š” ๊ฒƒ ์ด์™ธ์—๋Š” ์ƒ์†์„ ์œ„ํ•ด์„œ ์•„๋ฌด๋Ÿฐ ์ž‘์—…์„ ํ•  ํ•„์š”๋Š” ์—†๋‹ค. ์ž์‹ ํด๋ž˜์Šค๋Š” ํด๋ž˜์Šค ์„ ์–ธ์‹œ extends ๋‹ค์Œ์— ๋ถ€๋ชจ ํด๋ž˜์Šค ์ด๋ฆ„์„ ์ ์–ด์ค€๋‹ค. ์ž์‹ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด, ์ž๋™์œผ๋กœ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์—†๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ์ž์‹ ํด๋ž˜์Šค์—์„œ๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์— ์žˆ๋Š” public, protected๋กœ ์„ ์–ธ๋œ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค ๋ฐ ํด๋ž˜์Šค ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ์†์˜ ํ•„์š”์„ฑ ์ž๋ฐ”์—์„œ๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์†๋ฐ›์Œ์œผ๋กœ์จ, ๊ฐœ๋ฐœํ•  ๋•Œ ์ด์ค‘, ์‚ผ์ค‘์˜ ์ผ์„ ์•ˆํ•ด๋„ ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ์‚ฌ๋žŒ์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ํ•™๊ต์—์„œ ์‚ฌ์šฉํ•  ๋•Œ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฆ„, ์ „ํ™”๋ฒˆํ˜ธ๋Š” ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ต์ˆ˜์™€ ํ•™์ƒ์ผ ๋•Œ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค ์ด.. ๋”๋ณด๊ธฐ
[Java] ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜• 1. ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜ ์ž๋ฐ”์—์„œ๋Š” ๋„ค ๊ฐ€์ง€์˜ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์ง€์—ญ๋ณ€์ˆ˜: ์ค‘๊ด„ํ˜ธ ๋‚ด์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜: ๋ฉ”์†Œ๋“œ์— ๋„˜๊ฒจ์ฃผ๋Š” ๋ณ€์ˆ˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜: ๋ฉ”์†Œ๋“œ ๋ฐ–์—, ํด๋ž˜์Šค ์•ˆ์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜, ์•ž์—๋Š” static์ด ์—†์–ด์•ผ ํ•œ๋‹ค. ํด๋ž˜์Šค ๋ณ€์ˆ˜: ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ๋ฉ”์†Œ๋“œ ๋ฐ–์—, ํด๋ž˜์Šค ์•ˆ์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ ์ค‘์—์„œ ํƒ€์ž… ์„ ์–ธ ์•ž์— static์ด ์žˆ๋Š” ๋ณ€์ˆ˜ ๊ฐ ๋ณ€์ˆ˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ง€์—ญ๋ณ€์ˆ˜: ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ ์ค‘๊ด„ํ˜ธ ๋‚ด ๋งค๊ฐœ๋ณ€์ˆ˜: ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ๋ถ€ํ„ฐ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜: ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ํด๋ž˜์Šค ๋ณ€์ˆ˜: ํด๋ž˜์Šค๊ฐ€ ์ฒ˜์Œ ํ˜ธ์ค„๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ž๋ฐ”์—์„œ๋Š” c๋‚˜ c++์™€ ๋‹ฌ๋ฆฌ ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ๊ฐ€ ๋•Œ๊ฐ€ ๋˜๋ฉด ์•Œ์•„์„œ ๋ณ€์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ.. ๋”๋ณด๊ธฐ