์ „์ฒด ๊ธ€ 110

[Python] ๋ฐฑ์ค€ 1978๋ฒˆ

1978๋ฒˆ. ์†Œ์ˆ˜ ์ฐพ๊ธฐ (silver 4) ์ฃผ์–ด์ง„ ์ˆ˜ N๊ฐœ ์ค‘์—์„œ ์†Œ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ฐพ์•„์„œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 100์ดํ•˜์ด๋‹ค. ๋‹ค์Œ์œผ๋กœ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ ์ˆ˜๋Š” 1,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ถœ๋ ฅ ์ฃผ์–ด์ง„ ์ˆ˜๋“ค ์ค‘ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ 1 4 1 3 5 7 ์˜ˆ์ œ ์ถœ๋ ฅ 1 3 n = int(input()) # ์ž…๋ ฅ๋ฐ›์„ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜ numbers = list(map(int, input().split(' '))) # ๊ณต๋ฐฑ์œผ๋กœ ์ˆซ์ž ๊ตฌ๋ถ„ cnt = 0 for i in numbers: prime = 0 if i == 1: # 1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„˜์–ด๊ฐ„๋‹ค continue for j in range(2, i+1): if i % j == ..

[Python] ๋ฐฑ์ค€ 1764๋ฒˆ

1764๋ฒˆ. ๋“ฃ๋ณด์žก (silver 4) ๊น€์ง„์˜์ด ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ๊ณผ, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์ด ์ฃผ์–ด์งˆ ๋•Œ, ๋“ฃ๋„ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ N, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด์„œ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„๊ณผ, N+2์งธ ์ค„๋ถ€ํ„ฐ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ด๋ฆ„์€ ๋„์–ด์“ฐ๊ธฐ ์—†์ด ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๊ทธ ๊ธธ์ด๋Š” 20 ์ดํ•˜์ด๋‹ค. N, M์€ 500,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์—๋Š” ์ค‘๋ณต๋˜๋Š” ์ด๋ฆ„์ด ์—†์œผ๋ฉฐ, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ์ถœ๋ ฅ ๋“ฃ๋ณด์žก์˜ ์ˆ˜์™€ ๊ทธ ๋ช…๋‹จ์„ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ์ž…๋ ฅ1 3 4 ohhenrie charlie baesangwoo..

[Python] ๋ฐฑ์ค€ 11650๋ฒˆ

11650๋ฒˆ. ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ (silver 5) 2์ฐจ์› ํ‰๋ฉด ์œ„์˜ ์  N๊ฐœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ขŒํ‘œ๋ฅผ x์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ, x์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด y์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” i๋ฒˆ์ ์˜ ์œ„์น˜ xi์™€ yi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขŒํ‘œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๊ณ , ์œ„์น˜๊ฐ€ ๊ฐ™์€ ๋‘ ์ ์€ ์—†๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ ์„ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ1 5 3 4 1 1 1 -1 2 2 3 3 ์˜ˆ์ œ ์ถœ๋ ฅ1 1 -1 1 1 2 2 3 3 3 4 ์ž…๋ ฅ๋ฐ›์„ ์ ์˜ ๊ฐœ์ˆ˜ dot์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. xi์™€ yi๋ฅผ ์ €์žฅํ•  ๋ฆฌ์ŠคํŠธ numbers๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜..

[Python] ๋ฐฑ์ค€ 1920๋ฒˆ

1920๋ฒˆ. ์ˆ˜ ์ฐพ๊ธฐ (silver 4) N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ, ์ด ์•ˆ์— X๋ผ๋Š” ์ •์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค์ด A์•ˆ์— ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋ฉด ๋œ๋‹ค. ๋ชจ๋“  ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š” -2^31 ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ  2^31๋ณด๋‹ค ์ž‘๋‹ค. ์ถœ๋ ฅ M๊ฐœ์˜ ์ค„์— ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค. ์กด์žฌํ•˜๋ฉด 1์„, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ด์ง„ ํƒ์ƒ‰์„ ์ด์šฉํ•˜๋ฉด ๋นจ๋ฆฌ ๋‹ต์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๊ณ  ์‹ถ์€ m๊ฐœ์˜ ..

[Python] ๋ฐฑ์ค€ 1654๋ฒˆ

1654๋ฒˆ. ๋žœ์„  ์ž๋ฅด๊ธฐ (silver 3) ์ง‘์—์„œ ์‹œ๊ฐ„์„ ๋ณด๋‚ด๋˜ ์˜ค์˜์‹์€ ๋ฐ•์„ฑ์›์˜ ๋ถ€๋ฆ„์„ ๋ฐ›๊ณ  ๊ธ‰ํžˆ ๋‹ฌ๋ ค์™”๋‹ค. ๋ฐ•์„ฑ์›์ด ์บ ํ”„ ๋•Œ ์“ธ N๊ฐœ์˜ ๋žœ์„ ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ ๋„ˆ๋ฌด ๋ฐ”๋น ์„œ ์˜์‹์ด์—๊ฒŒ ๋„์›€์„ ์ฒญํ–ˆ๋‹ค. ์ด๋ฏธ ์˜ค์˜์‹์€ ์ž์ฒด์ ์œผ๋กœ K๊ฐœ์˜ ๋žœ์„ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ K๊ฐœ์˜ ๋žœ์„ ์€ ๊ธธ์ด๊ฐ€ ์ œ๊ฐ๊ฐ์ด๋‹ค. ๋ฐ•์„ฑ์›์€ ๋žœ์„ ์„ ๋ชจ๋‘ N๊ฐœ์˜ ๊ฐ™์€ ๊ธธ์ด์˜ ๋žœ์„ ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— K๊ฐœ์˜ ๋žœ์„ ์„ ์ž˜๋ผ์„œ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 300cm ์งœ๋ฆฌ ๋žœ์„ ์—์„œ 140cm ์งœ๋ฆฌ ๋žœ์„ ์„ ๋‘ ๊ฐœ ์ž˜๋ผ๋‚ด๋ฉด 20cm๋Š” ๋ฒ„๋ ค์•ผ ํ•œ๋‹ค. (์ด๋ฏธ ์ž๋ฅธ ๋žœ์„ ์€ ๋ถ™์ผ ์ˆ˜ ์—†๋‹ค.) ํŽธ์˜๋ฅผ ์œ„ํ•ด ๋žœ์„ ์„ ์ž๋ฅด๊ฑฐ๋‚˜ ๋งŒ๋“ค ๋•Œ ์†์‹ค๋˜๋Š” ๊ธธ์ด๋Š” ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉฐ, ๊ธฐ์กด์˜ K๊ฐœ์˜ ๋žœ์„ ์œผ๋กœ N๊ฐœ์˜ ๋žœ์„ ์„ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๊ทธ๋ฆฌ๊ณ  ์ž๋ฅผ ๋•Œ๋Š” ..

[Python] ๋ฐฑ์ค€ 11651๋ฒˆ

์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2 (silver 5) 2์ฐจ์› ํ‰๋ฉด ์œ„์˜ ์  N๊ฐœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ขŒํ‘œ๋ฅผ y์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ, y์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด x์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” i๋ฒˆ์ ์˜ ์œ„์น˜ xi์™€ yi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขŒํ‘œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๊ณ , ์œ„์น˜๊ฐ€ ๊ฐ™์€ ๋‘ ์ ์€ ์—†๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ ์„ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค ์˜ˆ์ œ ์ž…๋ ฅ 1 5 0 4 1 2 1 -1 2 2 3 3 ์˜ˆ์ œ ์ถœ๋ ฅ 1 1 -1 1 2 2 2 3 3 0 4 dot_num = int(input()) dot = [] for i in range(dot_num): ..

[C] ๋ฐฑ์ค€ 2164๋ฒˆ

์นด๋“œ2 (silver 4) N์žฅ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นด๋“œ๋Š” ์ฐจ๋ก€๋กœ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉฐ, 1๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์œ„์—, N๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์•„๋ž˜์ธ ์ƒํƒœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๊ฐ€ ๋†“์—ฌ ์žˆ๋‹ค. ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์นด๋“œ๊ฐ€ ํ•œ ์žฅ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋œ๋‹ค. ์šฐ์„ , ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ๋ฐ”๋‹ฅ์— ๋ฒ„๋ฆฐ๋‹ค. ๊ทธ ๋‹ค์Œ, ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ์ œ์ผ ์•„๋ž˜์— ์žˆ๋Š” ์นด๋“œ ๋ฐ‘์œผ๋กœ ์˜ฎ๊ธด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด N=4์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. ์นด๋“œ๋Š” ์ œ์ผ ์œ„์—์„œ๋ถ€ํ„ฐ 1234 ์˜ ์ˆœ์„œ๋กœ ๋†“์—ฌ์žˆ๋‹ค. 1์„ ๋ฒ„๋ฆฌ๋ฉด 234๊ฐ€ ๋‚จ๋Š”๋‹ค. ์—ฌ๊ธฐ์„œ 2๋ฅผ ์ œ์ผ ์•„๋ž˜๋กœ ์˜ฎ๊ธฐ๋ฉด 342๊ฐ€ ๋œ๋‹ค. 3์„ ๋ฒ„๋ฆฌ๋ฉด 42๊ฐ€ ๋˜๊ณ , 4๋ฅผ ๋ฐ‘์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด 24๊ฐ€ ๋œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ 2๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ๋‚˜๋ฉด, ๋‚จ๋Š” ์นด๋“œ๋Š” 4๊ฐ€ ๋œ๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ œ์ผ ๋งˆ์ง€๋ง‰์— ๋‚จ๊ฒŒ ๋˜..

๋ฐฑ์ค€/C 2022.05.24

[Python] ๋ฐฑ์ค€ 2805๋ฒˆ

๋‚˜๋ฌด ์ž๋ฅด๊ธฐ (silver 3) ์ƒ๊ทผ์ด๋Š” ๋‚˜๋ฌด M๋ฏธํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ทผ์ฒ˜์— ๋‚˜๋ฌด๋ฅผ ๊ตฌ์ž…ํ•  ๊ณณ์ด ๋ชจ๋‘ ๋งํ•ด๋ฒ„๋ ธ๊ธฐ ๋•Œ๋ฌธ์—, ์ •๋ถ€์— ๋ฒŒ๋ชฉ ํ—ˆ๊ฐ€๋ฅผ ์š”์ฒญํ–ˆ๋‹ค. ์ •๋ถ€๋Š” ์ƒ๊ทผ์ด๋„ค ์ง‘ ๊ทผ์ฒ˜์˜ ๋‚˜๋ฌด ํ•œ ์ค„์— ๋Œ€ํ•œ ๋ฒŒ๋ชฉ ํ—ˆ๊ฐ€๋ฅผ ๋‚ด์ฃผ์—ˆ๊ณ , ์ƒ๊ทผ์ด๋Š” ์ƒˆ๋กœ ๊ตฌ์ž…ํ•œ ๋ชฉ์žฌ์ ˆ๋‹จ๊ธฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋‚˜๋ฌด๋ฅผ ๊ตฌํ• ๊ฒƒ์ด๋‹ค. ๋ชฉ์žฌ์ ˆ๋‹จ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค. ๋จผ์ €, ์ƒ๊ทผ์ด๋Š” ์ ˆ๋‹จ๊ธฐ์— ๋†’์ด H๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค. ๋†’์ด๋ฅผ ์ง€์ •ํ•˜๋ฉด ํ†ฑ๋‚ ์ด ๋•…์œผ๋กœ๋ถ€ํ„ฐ H๋ฏธํ„ฐ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค. ๊ทธ ๋‹ค์Œ, ํ•œ ์ค„์— ์—ฐ์†ํ•ด์žˆ๋Š” ๋‚˜๋ฌด๋ฅผ ๋ชจ๋‘ ์ ˆ๋‹จํ•ด๋ฒ„๋ฆฐ๋‹ค. ๋”ฐ๋ผ์„œ, ๋†’์ด๊ฐ€ H๋ณด๋‹ค ํฐ ๋‚˜๋ฌด๋Š” H ์œ„์˜ ๋ถ€๋ถ„์ด ์ž˜๋ฆด ๊ฒƒ์ด๊ณ , ๋‚ฎ์€ ๋‚˜๋ฌด๋Š” ์ž˜๋ฆฌ์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ์ค„์— ์—ฐ์†ํ•ด์žˆ๋Š” ๋‚˜๋ฌด์˜ ๋†’์ด๊ฐ€ 20, 15, 10, 17์ด๋ผ๊ณ  ํ•˜์ž. ์ƒ๊ทผ์ด๊ฐ€ ๋†’์ด๋ฅผ 15๋กœ ์ง€์ •ํ–ˆ๋‹ค๋ฉด, ๋‚˜๋ฌด๋ฅผ ์ž..

[Reversing] rev-basic-1 dreamhack stage 5 - (1)

Exercise: rev-basic-1 1. ์ •์  ๋ถ„์„ main ํ•จ์ˆ˜ ์ฐพ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์ด ๋กœ๋“œ ๋˜๋ฉด mainํ•จ์ˆ˜๋ฅผ ์ฐพ์ง€ ์•Š์•„๋„ IDA๊ฐ€ ์Šค์Šค๋กœ ํŒ๋‹จํ•œ mainํ•จ์ˆ˜๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. IDA๊ฐ€ ์•„๋ฌด๋Ÿฐ ์ •๋ณด ์—†์ด mainํ•จ์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋˜ ์ด์œ ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๋ณ„๋กœ mainํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํŒจํ„ด์ด ์ผ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. F5ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ๋””์ปดํŒŒ์ผ ๋œ mainํ•จ์ˆ˜๋ฅผ ๋ถ„์„ํ•ด๋ณด์ž. char v4[256]; // [rsp+20h] [rbp-118h] BYREF memset(v4, 0, sizeof(v4)); ๋จผ์ € v4๋ผ๋Š” 256 ๋ฐ”์ดํŠธ์˜ char๋ฐฐ์—ด์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. sub_1400013E0("Input : ", argv, envp); sub_140001440("%256s", v4); sub_1400013E0 ํ•จ์ˆ˜์™€ sub_1400..

[Reversing] rev-basic-0 dreamhack stage 5

Exercise: rev-basic-0 ์šฐ์„  mac์—์„œ IDA๊ฐ€ ๋””๋ฒ„๊น…์ด ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— % brew install gdb ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ„ฐ๋ฏธ๋„์— gdb๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค. ๋ถ€๋”” ์ž˜ ์ž‘๋™ํ•˜๊ธธ..(์ด ๋ฌธ์ œ์—์„  ๋””๋ฒ„๊น… ํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†๋‹ค.) 1. ์‹คํ–‰ ๋งฅ๋ถ์—์„  exeํŒŒ์ผ ์‹คํ–‰์ด ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— wineskin์„ ๊น”์•„์„œ ์‹คํ–‰์„ ํ•ด๋ดค๋‹ค. 'Input : ' ์ด๋ผ๋Š” ๋ฌธ์ž์—ด ๋’ค์— AAAA๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด ์›๋ž˜ Wrong์ด ๋‚˜์™€์•ผํ•˜๋Š”๋ฐ ํ”„๋กœ๊ทธ๋žจ์ด ๊บผ์ ธ๋ฒ„๋ ธ๋‹ค.. ์›๋ž˜ ๊ฐ™์œผ๋ฉด Wrong์ด ์ถœ๋ ฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์˜ ์–ด๋–ค ๊ฒ€์ฆ๊ณผ์ •์„ ๊ฑฐ์ณ ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์ด ๊ฒ€์ฆ์„ ํ†ต๊ณผํ–ˆ๋‹ค๋ฉด Correct, ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด Wrong์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ œ์˜ ์ •๋‹ต(flag..