๐Ÿ•ธ Algorithm 79

[Java/Algorithm]์†Œ์ˆ˜์™€ ํ•ฉ์„ฑ์ˆ˜

์ž์—ฐ์ˆ˜(-์Œ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ์ •์ˆ˜ 0~99~)๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋‘๊ฐ€์ง€ ์ข…๋ฅ˜์†Œ์ˆ˜์™€ ํ•ฉ์„ฑ์ˆ˜์†Œ์ˆ˜Prime Number1๊ณผ ์ž๊ธฐ ์ž์‹  ์™ธ์—๋Š” ์•ฝ์ˆ˜๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜.์•ฝ์ˆ˜๋ž€?6์„ ๋‚˜๋ˆด์„ ๋•Œ 0์ด ๋˜๋Š” ์ˆ˜. 6์˜ ์•ฝ์ˆ˜๋Š” 1,2,3,6์ž…๋‹ˆ๋‹ค.์ž์—ฐ์ˆ˜๋ฅผ ๋‚˜๋ˆด์„ ๋•Œ ๋‚˜๋ˆ  ๋–จ์–ด์ง€๊ฒŒ ํ•˜๋Š”(6%3๋Š” 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค) ์ž์—ฐ์ˆ˜๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.2, 3, 5, 7, 11, 13, 17...๊ฐ€์žฅ ์ž‘์€ ์†Œ์ˆ˜๋Š” 2์ด๋ฉฐ, ์ด๋Š” ์œ ์ผํ•œ ์ง์ˆ˜ ์†Œ์ˆ˜์ž…๋‹ˆ๋‹ค.๋ชจ๋“  ์†Œ์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ณ , ํ™€์ˆ˜์ž…๋‹ˆ๋‹ค. (๋‹จ, 2๋Š” ์˜ˆ์™ธ)↑ ์ฝ”๋“œ ์„ค๋ช…2(๊ฐ€์žฅ ์ž‘์€ ์†Œ์ˆ˜)~100์‚ฌ์ด์˜ ์†Œ์ˆ˜๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.(๋ฐ”๊นฅ ์ชฝ for๋ฌธ)1๊ณผ ์ž๊ธฐ ์ž์‹  ์™ธ์—๋Š” ์•ฝ์ˆ˜๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ชฝ for๋ฌธ์€ 2~๋ถ€ํ„ฐ n๋ฏธ๋งŒ๊นŒ์ง€ for๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.๋งŒ์•ฝ n์ด ์‚ฌ๋ผ๋ฉด ์•ˆ์ชฝ for๋ฌธ์—์„œ 4 % 2..

[Java/Algorithm]๊ธฐ์ˆ˜

๊ธฐ์ˆ˜Radix์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž์˜ ๊ฐœ์ˆ˜2์ง„์ˆ˜: 0๊ณผ 1. ์ˆซ์ž ๋‘๊ฐœ๋งŒ ์‚ฌ์šฉ.8์ง„์ˆ˜: 0~7. ์—ฌ๋Ÿ๊ฐœ๋ฅผ ์‚ฌ์šฉ.10์ง„๊ตฌ: 0~9. ์ˆซ์ž ์—ด๊ฐœ ์‚ฌ์šฉ.์šฐ๋ฆฌ๊ฐ€ ์ผ์ƒ์ ์œผ๋กœ ์“ฐ๋Š” ์ˆซ์ž์ฒด๊ณ„.16์ง„์ˆ˜: 0~9, A~F. ์—ด์—ฌ์„ฏ๊ฐœ ์‚ฌ์šฉ.10 ๋Œ€์‹  A, 11 ๋Œ€์‹  B ์‹์œผ๋กœ ์ด์šฉ.01234567891011121314150123456789ABCDEF  ์ •์ˆ˜ ์ƒ์ˆ˜: ์ •์ˆ˜์ƒํƒœ๋กœ ํ‘œํ˜„๋œ ์ƒ์ˆ˜.์ •์ˆ˜ : ์†Œ์ˆ˜์ ์ด ์—†๋Š” ์ˆซ์ž. n์ง„์ˆ˜๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•œ๋‹ค.์ƒ์ˆ˜ : ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ˆซ์ž.n์ง„์ˆ˜ ํ‘œํ˜„10์ง„์ˆ˜ ํ‘œํ˜„→  1234 = 1 x 10³ + 2 x 10²  +  3 x 10¹ + 4 x 10โฐ8์ง„์ˆ˜ ํ‘œํ˜„→ 5306 = 5 x 8³ + 3 x 8²  +  0 x 8 ¹ + 6 x 8 โฐ16์ง„์ˆ˜ ํ‘œํ˜„→ 12A0 = 1 x 16³ + ..

[Java/Algorithm](๊ธฐ๋ณธ)๋ฐฐ์—ด ์—ญ์ˆœ์ •๋ ฌ

๊ธฐ๋ณธ ๋ฐฐ์—ด ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐArrayList์ผ ๊ฒฝ์šฐ์—๋Š” .reverse()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ๊ธฐ๋ณธ ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ์—ด๊ธธ์ด / 2 ๋งŒํผ๋งŒ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธธ์ด๊ฐ€ 5์ผ ๊ฒฝ์šฐarr[0] ↔ arr[4]arr[1] ↔ arr[3]์ด๋Ÿฐ ์‹์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.๊ธธ์ด๊ฐ€ ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ ์ค‘์•™๊ฐ’์€ ๊ทธ๋Œ€๋กœ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.๋ฐฐ์—ด ์š”์†Œ์˜ ํ•ฉ๊ณ„ ๊ตฌํ•˜๊ธฐ๋ฌธ์ œ ์ž์ฒด๋Š” ๊ฐ„๋‹จํ•˜๋‹ค.์—ฌ๊ธฐ์„œ ํŠน์ง•์ ์ธ ๊ฑด ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ๋”ํ•˜๋Š”insertArrElement()ํ•จ์ˆ˜์—์„œ void.์ฆ‰ return๊ฐ’์ด ์—†๋Š”๋ฐ๋„ main()ํ•จ์ˆ˜์—์„œ ๋ฐฐ์—ด์š”์†Œ๊ฐ€ ์ฑ„์›Œ์ง„ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๋ฉดํ•ด๋‹น ํ•จ์ˆ˜๋Š” ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ’(heap์˜์—ญ)์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

[Java/Algorithm]์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋‚œ์ˆ˜

์ž๋ฃŒ๊ตฌ์กฐ๋ž€?Data structure๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ/์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•.๋ฐ์ดํ„ฐ ๋‹จ์œ„์™€ ๋ฐ์ดํ„ฐ ์ž์ฒด(๋ฉ”๋ชจ๋ฆฌ๊ฐ’) ์‚ฌ์ด ๋ฌผ๋ฆฌ์ /๋…ผ๋ฆฌ์  ๊ด€๊ณ„.์ข…๋ฅ˜Array, List, Stack, Queue, Set, Map.์ •์˜ํ•˜์ž๋ฉด ์ด๋ ‡์ง€๋งŒ..์ข…๋ฅ˜๋ฅผ ๋ณด์‹œ๋ฉด jdk์— ํฌํ•จ๋œ ๊ฒƒ๋“ค์ž…๋‹ˆ๋‹ค.editor์ธ ์ดํด๋ฆฝ์Šค๋‚˜ VScode์— jdk๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด, jdk์•ˆ์— java์ฝ”๋“œ ์ž‘์„ฑ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ๋“ค์ด ์žˆ์ž–์•„์š”. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐฐ์—ด.https://yeun-devlog.tistory.com/entry/JAVA%EB%B0%B0%EC%97%B4-Array [JAVA]๋ฐฐ์—ด Array [ ]๋ฐฐ์—ดArray[ ]์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ๋ชจ์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ฐธ์กฐ ํƒ€์ž….๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ.๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ 3์ผ ๋•Œ[0][1][2] ๋ผ๋Š” in..

[Java/Algorithm]๋‹จ์ถ•ํ‰๊ฐ€, ๋“œ๋ชจ๋ฅด๊ฐ„ ๋ฒ•์น™, ๋‹ค์ค‘๋ฃจํ”„

๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€?ํ•˜๋‚˜์˜ ์ž…/์ถœ๊ตฌ ๊ตฌ์„ฑ์š”์†Œ๋งŒ์„ ๊ณ„์ธต์  ๋ฐฐ์น˜ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค. ์ˆœ์ฐจ, ์„ ํƒ, ๋ฐ˜๋ณต์˜ ์ œ์–ด ํ๋ฆ„์„ ์ด์šฉํ•œ๋‹ค.์ˆœ์ฐจ process ๋ฌธ์žฅ -> process ๋ฌธ์žฅ์„ ํƒ is/else์™€ ๊ฐ™์€ ์กฐ๊ฑด๋ฌธ๋ฐ˜๋ณต Loop. for, while๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ๋“ค์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๋‹จ์ถ• ํ‰๊ฐ€short circuit evaluation๋“œ๋ชจ๋ฅด๊ฐ„ ๋ฒ•์น™De Morgan's laws๊ฐ ์กฐ๊ฑด์„ ๋ถ€์ •ํ•˜๊ณ (    ) → !(    )๋…ผ๋ฆฌ๊ณฑ์„ ๋…ผ๋ฆฌ ํ•ฉ์œผ๋กœ, ๋…ผ๋ฆฌํ•ฉ์„ ๋…ผ๋ฆฌ๊ณฑ์œผ๋กœ ๋ฐ”๊พธ๊ณ || → &&๋‹ค์‹œ ์ „์ฒด๋ฅผ ๋ถ€์ •ํ•˜๋ฉด=์›๋ž˜์˜ ์กฐ๊ฑด๊ณผ ๊ฐ™๋‹ค.๋‹ค๋ฅธ ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด.. ๋ฐ˜๋Œ€๋กœ ํ•ด์•ผํ•  ๊ฒƒ๋“ค์„ ๋”ฐ๋กœ ๋ชจ์•„๋ณด๋ฉด๋ณ€์ˆ˜ x, y||( )์ด๋ ‡๊ฒŒ ๋ชจ๋‘๋ฅผ ๋ถ€์ •ํ•˜๋ฉด ๊ฐ’์ด ๊ฐ™์•„์ง„๋‹ค๋Š” ๊ฒ๋‹ˆ๋‹ค.๋‹ค์ค‘ ๋ฃจํ”„์ด์ค‘ for๋ฌธ/์ด์ค‘ ๋ฃจํ”„..

[Java/Algorithm]์ˆœ์„œ๋„ flowchart

Data Data Process Predenfined process Decision Loop limit Line Terminator๋ฐ˜๋ณต ๊ตฌ์กฐrepetition๋ฃจํ”„ Loop ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.  ์ด ๋•Œ while๋ฌธ์€ ์‹คํ–‰ ์ „์— ๋ฐ˜๋ณต์„ ๊ณ„์†ํ•  ์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฑธ '์‚ฌ์ „ ํŒ๋‹จ ๋ฐ˜๋ณต ๊ตฌ์กฐ' ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.์—ฐ์Šต๋ฌธ์ œ ํ’€์–ด๋ณด๊ธฐ๋ฌธ์ œ : 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ํ•ฉ์€ (1 + 10) * 5์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์šฐ์Šค์˜ ๋ง์…ˆ์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ n๊นŒ์ง€ ์ •์ˆ˜ ํ•ฉ์„ ๊ตฌํ•˜์‹œ์˜ค. 1 ~ 10๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•  ๊ฒฝ์šฐ1 + 10 = 112 + 9 =  11...5 + 6 = 11๋ชจ๋‘ 11์ด๋ฏ€๋กœ ์ด๋ฅผ 5๋ฒˆ๋งŒ ๊ณฑํ•˜๋ฉด ์ •๋‹ต์ด๋‹ค.์ง์ˆ˜์ผ ๊ฒฝ์šฐ(n%2๊ฐ€ 0)์—๋Š” n/2๋งŒ ๊ณฑํ•ด์ฃผ๋ฉด๋˜๊ณ ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ์— (n-1) /2๋ฅผ ๊ณฑํ•œ ํ›„ (์ฒ˜์Œ๊ฐ’๊ณผ ์ค‘์•™๊ฐ’)..

[Java/Alorithm]์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?

์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ์ˆœ์„œ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ทœ์น™์˜ ์ง‘ํ•ฉ. ๋ณ€์ˆ˜์˜ ๊ฐ’์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ํ‹€๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์•„๋‹™๋‹ˆ๋‹ค.๊ณผ์ •max์— a๊ฐ’์„ ๋„ฃ๋Š”๋‹ค.b ๊ฐ’์ด max๋ณด๋‹ค ํฌ๋ฉด max์— b๊ฐ’์„ ๋„ฃ๋Š”๋‹ค.c ๊ฐ’์ด max๋ณด๋‹ค ํฌ๋ฉด max์— c๊ฐ’์„ ๋„ฃ๋Š”๋‹ค.์ด๋ ‡๊ฒŒ ์ˆœ์„œ๋Œ€๋กœ ๋ฌธ์žฅprocess์ด ์‹คํ–‰๋˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ˆœ์ฐจ์  ๊ตฌ์กฐconcatenation๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.๋ฌธ์žฅ process → ๋ฌธ์žฅ process → ๋ฌธ์žฅ process์—ฌ๊ธฐ์—์„œ max์— a๊ฐ’์„ ๋„ฃ๋Š” ๊ฒƒ์€ ๋‹จ์ˆœ ๋Œ€์ž…์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์ œ์–ด๋ฌธ if()๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ, ์‹์˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ํ๋ฆ„์ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ์„ ํƒ ๊ตฌ์กฐselection๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.if (์‹) → ๊ฒฐ๊ณผ๋„์ถœ ์ด ๊ณผ์ •์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ˆœ์„œ๋„flowchart๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค..

์ด ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์ฑ…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋ฉด์ •๋‹ต์€ ๋งž์•„๋„ ํ’€์ด๋ฐฉ์‹์ด ํ‹€๋ ธ๋‹ค๊ณ  ์ƒ๊ฐ๋  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ‘ผ ํ›„์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ํ‘ผ ๊ฑธ ๋ณด๋ฉด ๊ทธ๊ฑธ ๊นจ๋‹ซ๊ฒŒ ๋˜์ฃ .๊ทธ๋ž˜์„œ ์ „์— ์‚ฌ๋‘์—ˆ๋˜ ์ฑ…์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.์ œ ๊ฑด ๊ฐœ์ •ํŒ์ด ์•„๋‹ˆ๋ผ ๋นจ๊ฐ„์ƒ‰์ธ๋ฐ ๊ฐœ์ •ํŒ์€ ์ฃผํ™ฉ์ƒ‰์ด๋„ค์š” ํ•˜ํ•˜

[๋ฐฑ์ค€][java][1193][๋ถ„์ˆ˜์ฐพ๊ธฐ]

import java.util.Scanner; // 1193๋ถ„์ˆ˜์ฐพ๊ธฐ public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); in.close(); int cnt = 0; int sum = 0; int a = 0; int b = 0; while (x > sum) { cnt++; sum += cnt; } // ์ง์ˆ˜์ผ ๊ฒฝ์šฐ if (cnt % 2 == 0) { a = cnt - (sum - x); b = cnt + ((sum - cnt) - x) + 1; } else { a = cnt + ((sum - cnt) - x) +1; b = cnt - (sum -..