Wing Pointer - Text Select
[programmers] 2018 KAKAO BLIND RECRUITMENT ํŒŒ์ผ๋ช… ์ •๋ ฌ
ยท
Problem Solving/Online Judge
๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…์ฃผ์–ด์ง„ ํŒŒ์ผ๋ช…์„ ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ฐ ํŒŒ์ผ๋ช…์€ HEAD, NUMBER, TAIL ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.- HEAD: ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ถ€๋ถ„ (๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ X)- NUMBER: ์—ฐ์†๋œ ์ˆซ์ž ๋ถ€๋ถ„ (์ตœ๋Œ€ 5์ž๋ฆฌ)- TAIL: ๋‚˜๋จธ์ง€ ๋ฌธ์ž (๋น„๊ต์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)์ •๋ ฌ ๊ธฐ์ค€1. HEAD: ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ์‚ฌ์ „์ˆœ2. NUMBER: ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ ๋น„๊ต3. HEAD์™€ NUMBER๊ฐ€ ๊ฐ™์œผ๋ฉด ๊ธฐ์กด ์ž…๋ ฅ ์ˆœ์„œ ์œ ์ง€ (stable sort)๐Ÿ“Œ ํ•ต์‹ฌ ํฌ์ธํŠธํŒŒ์‹ฑ ๊ฒฐ๊ณผ ์บ์‹ฑ: ํŒŒ์ผ๋ช…์„ ํ•œ ๋ฒˆ๋งŒ ํŒŒ์‹ฑํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ฒด๋กœ ์ €์žฅ`StringBuilder` ์‚ฌ์šฉ: ๋ฌธ์ž์—ด ๋ง์…ˆ ๋Œ€์‹  ๊ฐ€๋ณ€ ๋ฒ„ํผ๋กœ ํšจ์œจ ํ–ฅ์ƒ`compareToIgnoreCase()`: ๋Œ€๋ฌธ์ž ๋ณ€ํ™˜ ๋ถˆํ•„์š”, ๋ฐ”๋กœ..
[programmers] ํ”ผ๋กœ๋„
ยท
Problem Solving/Online Judge
๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…ํ•œ ์œ ์ €๊ฐ€ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋˜์ „์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๊ณ , ๊ฐ ๋˜์ „์€ ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.- ์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„: ์ž…์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ์ฒด๋ ฅ- ์†Œ๋ชจ ํ”ผ๋กœ๋„: ํƒํ—˜ ํ›„ ๊ฐ์†Œ๋˜๋Š” ์ฒด๋ ฅ์œ ์ €์˜ ์ดˆ๊ธฐ ํ”ผ๋กœ๋„ `k์™€` ๋˜์ „ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์œ ์ €๊ฐ€ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋˜์ „ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.๐Ÿ“Œ ํ•ต์‹ฌ ํฌ์ธํŠธ์™„์ „ํƒ์ƒ‰์˜ ๊ธฐ๋ณธ + ๋ฐฑํŠธ๋ž˜ํ‚น ์ตœ์ ํ™”๐Ÿ’ซ ๋ฌธ์ œ ํ’€์ด๋˜์ „์˜ ๊ฐœ์ˆ˜๋Š” ์ตœ๋Œ€ 8๊ฐœ → ์™„์ „ํƒ์ƒ‰ ๊ฐ€๋Šฅ (8! = 40,320)๋ชจ๋“  ๋˜์ „ ์ˆœ์„œ๋ฅผ ๋งŒ๋“ค์–ด ํƒํ—˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ž…์žฅ ๊ฐ€๋Šฅํ•  ๋•Œ๋งŒ ์ฒด๋ ฅ์„ ๊นŽ๊ณ  ํƒํ—˜ ๊ฐœ์ˆ˜(`ans`) ๊ฐฑ์‹ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ˆœ์„œ๋ฅผ ํƒ์ƒ‰ํ•ด ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•œ๋‹ค.๐Ÿ’ป ์ฝ”๋“œclass Solution { int N = 0, ans = 0; boolean[] visited; pub..
[programmers] 2023 KAKAO BLIND RECRUITMENT ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธํ–‰์‚ฌ
ยท
Problem Solving/Online Judge
๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…์ด๋ชจํ‹ฐ์ฝ˜๋งˆ๋‹ค ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ• ์ธ์œจ์€ 10%, 20%, 30%, 40% ์ค‘ ํ•˜๋‚˜์ด๋‹ค.๊ฐ ์œ ์ €๋Š” ์ตœ์†Œ ํ• ์ธ์œจ ๊ธฐ์ค€(rate) ๊ณผ ์ด๋ชจํ‹ฐ์ฝ˜ ํ”Œ๋Ÿฌ์Šค ๊ฐ€์ž… ๊ธฐ์ค€ ๊ธˆ์•ก(price) ์„ ๊ฐ€์ง„๋‹ค.- ์œ ์ €๋Š” ๋ณธ์ธ์ด ์„ค์ •ํ•œ ํ• ์ธ์œจ ์ด์ƒ์ธ ์ด๋ชจํ‹ฐ์ฝ˜๋งŒ ๊ตฌ๋งคํ•œ๋‹ค.- ๊ตฌ๋งค ์ด์•ก์ด ๊ธฐ์ค€ ๊ธˆ์•ก ์ด์ƒ์ด๋ฉด ์ด๋ชจํ‹ฐ์ฝ˜ ํ”Œ๋Ÿฌ์Šค ๊ฐ€์ž…์ž๊ฐ€ ๋œ๋‹ค.- ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด ๊ตฌ๋งค ๊ธˆ์•ก๋งŒํผ์˜ ๋งค์ถœ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋ชฉํ‘œ: (1) ํ”Œ๋Ÿฌ์Šค ๊ฐ€์ž…์ž ์ˆ˜๋ฅผ ์ตœ๋Œ€ํ™” (2) ๊ฐ€์ž…์ž ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋งค์ถœ์•ก์„ ์ตœ๋Œ€ํ™”๐Ÿ“Œ ํ•ต์‹ฌ ํฌ์ธํŠธ์ด๋ชจํ‹ฐ์ฝ˜ ๊ฐœ์ˆ˜๊ฐ€ ์ตœ๋Œ€ 7๊ฐœ → 4^7 = 16,384 ์กฐํ•ฉ → ์™„์ „ํƒ์ƒ‰ ๊ฐ€๋Šฅ๊ฐ ์ด๋ชจํ‹ฐ์ฝ˜์— ๊ฐ€๋Šฅํ•œ ํ• ์ธ์œจ 4๊ฐ€์ง€๋ฅผ DFS๋กœ ์ „๋ถ€ ํƒ์ƒ‰๊ฐ ์กฐํ•ฉ๋งˆ๋‹ค ๋ชจ๋“  ์œ ์ €์˜ ๊ตฌ๋งค ๊ธˆ์•ก์„ ๊ณ„์‚ฐ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ฐ€์ž…์ž ์ˆ˜์™€ ๋งค์ถœ์•ก์„ ๊ฐฑ์‹ ๐Ÿ’ซ ๋ฌธ์ œ ํ’€์ดํ• ์ธ์œจ ํ›„๋ณด ..
[programmers] 2022 KAKAO BLIND RECRUITMENT ์–‘๊ถ๋Œ€ํšŒ
ยท
Problem Solving/Online Judge
๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…๋ผ์ด์–ธ vs ์–ดํ”ผ์น˜์˜ ์–‘๊ถ ์ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋ผ์ด์–ธ์ด ๊ฐ€์žฅ ๋งŽ์€ ์ ์ˆ˜ ์ฐจ๋กœ ์–ดํ”ผ์น˜๋ฅผ ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ์˜ ์กฐํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.- ์ด 11๊ฐœ์˜ ๊ณผ๋…(10์  ~ 0์ )- ์–ดํ”ผ์น˜์˜ ์ ์ˆ˜ ๊ธฐ๋ก(`info[]`)์ด ์ฃผ์–ด์ง- ๋ผ์ด์–ธ์€ `n`๊ฐœ์˜ ํ™”์‚ด์„ ๋ฐฐ๋ถ„ํ•ด์•ผ ํ•จ- ์ ์ˆ˜ ๊ณ„์‚ฐ ๋ฐฉ์‹: ๋ผ์ด์–ธ์ด ๋” ๋งŽ์€ ํ™”์‚ด์„ ์œ ๊ตฌ๊ฐ„ → ๊ทธ ์ ์ˆ˜ ํš๋“ ํ”ผ์น˜๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜ ๋” ๋งŽ์ด ์œ ๊ตฌ๊ฐ„ → ์–ดํ”ผ์น˜ ์ ์ˆ˜- ๋ชฉํ‘œ: (๋ผ์ด์–ธ์˜ ์ ์ˆ˜ - ์–ดํ”ผ์น˜์˜ ์ ์ˆ˜) ์ฐจ์ด ์ตœ๋Œ€ํ™”- ๋‹จ, ์ ์ˆ˜ ์ฐจ์ด๊ฐ€ ๊ฐ™์„ ๋• ๋‚ฎ์€ ์ ์ˆ˜(0์ )์— ๋” ๋งŽ์ด ์œ ๊ฒฝ์šฐ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•จ๐Ÿ“Œ ํ•ต์‹ฌ ํฌ์ธํŠธํ•ต์‹ฌ์€ ๋ชจ๋“  ํ™”์‚ด ๋ถ„๋ฐฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด์„œ, ์ ์ˆ˜ ์ฐจ์ด๊ฐ€ ์ตœ๋Œ€์ธ ์กฐํ•ฉ์„ ์ฐพ๋Š” ๊ฒƒ์™„์ „ ํƒ์ƒ‰ (DFS) + ๋ฐฑํŠธ๋ž˜ํ‚น ๊ตฌ์กฐ๋กœ ๋ชจ๋“  ์ ์ˆ˜ ๊ตฌ๊ฐ„(0~10)์„ ํƒ์ƒ‰ํ•œ๋‹ค.`i`:..
[programmers] ์•„์ดํ…œ ์ค๊ธฐ
ยท
Problem Solving/Online Judge
๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…์บ๋ฆญํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ์‚ฌ๊ฐํ˜•์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ง€๋„ ์œ„์—์„œ ํ…Œ๋‘๋ฆฌ๋งŒ ๋”ฐ๋ผ ์ด๋™ํ•˜๋ฉฐ ์•„์ดํ…œ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.- ๋‹จ, ์‚ฌ๊ฐํ˜•์ด ๊ฒน์น˜๊ฑฐ๋‚˜ ๋ถ™์–ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์–ด์„œ ๋‹จ์ˆœํ•œ ๊ฒฝ๊ณ„ ํŒ์ •์ด ์–ด๋ ค์›€๐Ÿ“Œ ํ•ต์‹ฌ ํฌ์ธํŠธ๋ฌธ์ œ์˜ ๋ณธ์งˆ์€ ํ…Œ๋‘๋ฆฌ๋งŒ ๋‚จ๊ธฐ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๊ฒƒ์ด๋ฅผ ์œ„ํ•ด ์ขŒํ‘œ ํ™•์žฅ + ๋‚ด๋ถ€ ์ œ๊ฑฐ + BFS ์„ธ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นจ๐Ÿ’ซ ๋ฌธ์ œ ํ’€์ด์ขŒํ‘œ 2๋ฐฐ ํ™•์žฅ๋Œ€๊ฐ์„ /์ฝ”๋„ˆ ๊ฒน์นจ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์ขŒํ‘œ๋ฅผ 2๋ฐฐ๋กœ ํ™•์žฅํ•œ๋‹ค.์˜ˆ: (1,1)~(2,2) → (2,2)~(4,4)๋‚ด๋ถ€๋ฅผ ์ง€์›Œ์„œ ํ…Œ๋‘๋ฆฌ๋งŒ ๋‚จ๊ธฐ๊ธฐ์ฑ„์šด ์‚ฌ๊ฐํ˜•์˜ ์ง„์งœ ๋‚ด๋ถ€(x1+1 ~ x2-1, y1+1 ~ y2-1)๋งŒ 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฒน์นœ ๋ถ€๋ถ„๋„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ณ  ํ…Œ๋‘๋ฆฌ(=๊ฒฝ๊ณ„์„ )๋งŒ 1๋กœ ๋‚จ๋Š”๋‹ค.BFS๋กœ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํƒ์ƒ‰ํ…Œ๋‘๋ฆฌ(1)๋งŒ ์ด๋™ ๊ฐ€๋Šฅcha..
[progammers] 2020 KAKAO BLIND RECRUITMENT ๋ธ”๋ก ์ด๋™ํ•˜๊ธฐ
ยท
Problem Solving/Online Judge
๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…2×1 ํฌ๊ธฐ์˜ ๋กœ๋ด‡์ด ๊ฒฉ์ž ์•ˆ์„ ์ด๋™ํ•˜๋ฉฐ (N, N)์— ๋„์ฐฉํ•˜๋Š” ์ตœ์†Œ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.- ๋กœ๋ด‡์€ ์ƒํ•˜์ขŒ์šฐ ์ด๋™๋ฟ ์•„๋‹ˆ๋ผ 90๋„ ํšŒ์ „๋„ ๊ฐ€๋Šฅ๐Ÿ“Œ ํ•ต์‹ฌ ํฌ์ธํŠธ๋‹จ์ˆœ BFS๊ฐ€ ์•„๋‹ˆ๋ผ "์ƒํƒœ(state)"๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ BFS์ด ๋ฌธ์ œ๋Š” ๋‹จ์ˆœํžˆ ์ขŒํ‘œ (y, x) ์œ„์น˜๋งŒ์œผ๋กœ ์ƒํƒœ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†๋‹ค.๋กœ๋ด‡์ด"๊ฐ€๋กœ๋กœ ๋ˆ„์›Œ ์žˆ๋Š”์ง€, ์„ธ๋กœ๋กœ ์„œ ์žˆ๋Š”์ง€"์— ๋”ฐ๋ผ ์™„์ „ํžˆ ๋‹ค๋ฅธ ํ–‰๋™์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๊ทธ๋ž˜์„œ `visited` ๋ฐฐ์—ด์ด `boolean[y][x][dir]` ํ˜•ํƒœ์˜ 3์ฐจ์› ๋ฐฐ์—ด์ด ๋œ๋‹ค.๐Ÿ’ซ ๋ฌธ์ œ ํ’€์ด์ƒํƒœ ์ •์˜`y`, `x`: ๋กœ๋ด‡์˜ ์ขŒ์ƒ๋‹จ ์นธ ์ขŒํ‘œ`dir`: ๋ฐฉํ–ฅ(0 = ๊ฐ€๋กœ, 1 = ์„ธ๋กœ)`t`: ํ•ด๋‹น ์นธ์— ๋„์ฐฉํ•˜๊ธฐ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„๊ฒฝ๊ณ„ ์ฒดํฌ ๋กœ์ง์„ ๊ฐ„๋‹จํžˆ ํ•˜๊ธฐ ์œ„ํ•œ ํŒจ๋”ฉ ์ถ”๊ฐ€`board`์˜ ์‚ฌ์ด๋“œ๋ฅผ..