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

์ „์ฒด ๊ธ€148

[BOJ] 15657๋ฒˆ - N๊ณผM(8) (Python) ๐Ÿ› ๏ธ ๋ฌธ์ œ ๐Ÿ› ๏ธ ๐Ÿ—’๏ธ ์„ค๋ช… ๐Ÿ—’๏ธ ๋ฐฑํŠธ๋ž˜ํ‚น ์—ฐ์Šตํ•˜๊ธฐ ํŽธํ•œ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์˜ค๋Š˜ ํ’€๋ฉด์„œ ํ‹€๋ ธ๋˜ ์ด์œ ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚จ๊ฒจ๋†“์œผ๋ ค๊ณ  ํ•œ๋‹ค. ๋‚ด๊ฐ€ ์ž˜๋ชป ์ƒ๊ฐํ–ˆ๋˜ ๋ถ€๋ถ„์€ ํƒ€์ž…์„ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ์ •๋ ฌํ•œ ๊ฒƒ์ด๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ฒฐ๊ณผ๋ฅผ ์‰ฝ๊ฒŒ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์žํ˜• ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ์˜ˆ์ œ๋Š” ์ „๋ถ€ ํ†ต๊ณผํ•ด ์ œ์ถœํ–ˆ์ง€๋งŒ ํ‹€๋ ธ๋‹ค. ๋‹ค๋ฅธ ๋™์ž‘์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‚˜ ๊ณ ๋ฏผํ•ด๋ณด์•˜์ง€๋งŒ ์—†์—ˆ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•ด๋ด๋„ ๋™์ž‘์€ ์™„๋ฒฝํ–ˆ๋‹ค. ๋‹จ ํ•˜๋‚˜ ๋‹ค๋ฅธ ์ ์ด ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด์—ˆ๋Š”๋ฐ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ [์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜]์ด๋ฏ€๋กœ ์ด๋Š” ์ •์ˆ˜๋กœ ์ •๋ ฌํ•ด์•ผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ •๋ ฌ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ๐Ÿ€ ํ’€์ด ๐Ÿ€ import sys n, m = map(int, sys.stdin.readline().split()) nums = .. 2023. 10. 5.
[BOJ] 1911๋ฒˆ - ํ™๊ธธ ๋ณด์ˆ˜ํ•˜๊ธฐ (Python) ๐Ÿ› ๏ธ ๋ฌธ์ œ ๐Ÿ› ๏ธ ๐Ÿ—’๏ธ ์„ค๋ช… ๐Ÿ—’๏ธ ์ด ๋ฌธ์ œ๋Š” [๋ฌผ์›…๋ฉ์ด๋“ค์„ ๋ชจ๋‘ ๋ฎ์œผ๋ ค๊ณ  ํ•œ๋‹ค.] ๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ์œผ๋ฏ€๋กœ ๋ฌผ์›…๋ฉ์ด๊ฐ€ ๋ณด์ด๋ฉด ์ผ๋‹จ ๋ฎ์œผ๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋„๋นค์ง€์˜ ๊ธธ์ด๋Š” ์ •ํ•ด์ ธ ์žˆ์œผ๋ฏ€๋กœ ๋ฎ๋‹ค๋ณด๋ฉด ์ž…๋ ฅ๋ฐ›์€ ๋ฌผ์›…๋ฉ์ด์˜ ์œ„์น˜๊ฐ€ ์ด๋ฏธ ๋ฎ์—ฌ์ ธ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์–ด์ฐจํ”ผ ๋ชจ๋“  ์›…๋ฉ์ด๋Š” ๋ฎ์–ด์•ผํ•˜๋‹ˆ ์›…๋ฉ์ด์˜ [๋ ์œ„์น˜ - ์‹œ์ž‘ ์œ„์น˜]๋ฅผ ํ†ตํ•ด ์›…๋ฉ์ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜์—ฌ ํ•„์š”ํ•œ ๋„๋นค์ง€์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ–ˆ๋‹ค. ๋‹จ, ์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด ์ด๋ฏธ ๋ฎ์—ฌ์ ธ ์žˆ๋Š” ์œ„์น˜๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋กœ current๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‘์–ด ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋ฎ์—ฌ์ ธ ์žˆ์ง€ ์•Š์€ ์œ„์น˜๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. ๐Ÿ€ ํ’€์ด ๐Ÿ€ import sys n, l = map(int, sys.stdin.readline().split()) water = [list(map(int, sy.. 2023. 9. 7.
[BOJ] 13549๋ฒˆ - ์ˆจ๋ฐ”๊ผญ์งˆ3 (Python) ๐Ÿ› ๏ธ ๋ฌธ์ œ ๐Ÿ› ๏ธ ๐Ÿ—’๏ธ ์„ค๋ช… ๐Ÿ—’๏ธ ์–ด์ œ ๊ณต๋ถ€ํ•œ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์—ฐ์Šตํ•ด๋ณด์•˜๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ BFS 2๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด๋ณด์•˜๋‹ค. (์ฝ”๋“œ๋Š” ์•„๋ž˜์—) 1. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•œ ํ’€์ด 1. ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜๋ฅผ ์‹œ์ž‘ ์ •์ ์œผ๋กœ ๋‘”๋‹ค. 2. ํ˜„์žฌ ์œ„์น˜ i์— +1, -1 *2 ํ•œ ์œ„์น˜์— ๋Œ€ํ•ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์‹œ๊ฐ„ times[k]์™€ ๋„๋‹ฌํ•œ ์‹œ๊ฐ„(times[i] + 1 ๋˜๋Š” times[i])์„ ๋น„๊ตํ•˜์—ฌ ๋„๋‹ฌํ•œ ์‹œ๊ฐ„์ด ๋” ์ž‘์œผ๋ฉด times[k]๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค. 3. heap์ด ๋นŒ ๋•Œ๊นŒ์ง€ 2๋ฒˆ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ด๋•Œ, ์ฃผ์˜ํ•  ์ ์€ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†์ง€๋งŒ ๊ฐ€์ค‘์น˜๋กœ ์ƒ๊ฐํ•œ ๊ฐ’์€ ๋„๋‹ฌํ•œ ์‹œ๊ฐ„์œผ๋กœ times์˜ ๊ฐ’์ด๋‹ค. ๋งŒ์•ฝ ์ด๋ฅผ times๋ฅผ ๋„์ฐฉ ์ •์ ์˜ ๊ฐœ์ˆ˜๋งŒํผ๋งŒ ๋งŒ๋“ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์„ ๋„์ถœํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ด๋‹ค. ์œ„์˜ ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์˜ˆ.. 2023. 9. 5.
[BOJ] 1753๋ฒˆ - ์ตœ๋‹จ๊ฒฝ๋กœ(Python) + Dijkstra Algorithm ๐Ÿ—’๏ธ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Dijkstra Algorithm) ๋ชจ์„œ๋ฆฌ ๋˜๋Š” ์ •์ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ๋ถ€์—ฌ๋œ ๊ทธ๋ž˜ํ”„์—์„œ ๋‘ ์ •์  ์‚ฌ์ด์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋Š” ๊ทธ๋ž˜ํ”„์—์„œ์˜ ์ตœ๋‹จ๊ฒฝ๋กœ๋Š” BFS๋ฅผ ์‚ฌ์šฉ! ์–ด๋–ค ์‹œ์ž‘์  s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ์ •์ ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š”๋‹ค. ๋‹จ, ์Œ์ˆ˜์ธ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋Š” ์šฐ๋ฆฌ์ง‘์—์„œ ์˜†์ง‘์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ์šฐ๋ฆฌ์ง‘์—์„œ ์€ํ–‰์„ ๊ฑฐ์ณ ๊ฐ€๋Š” ๊ฒƒ์ด ๋น„์šฉ์ƒ ์ด๋“์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ฆ‰, ๊ฐ’์ด ์Œ์ˆ˜์ธ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋Š” ๋„์ค‘์— ์•„์ฃผ ์ž‘์€ ์Œ์ˆ˜ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ชจ์„œ๋ฆฌ๊ฐ€ ์žˆ์–ด์„œ ์ด๋ฏธ ํŠธ๋ฆฌ์— ๋“ค์–ด์žˆ๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ์™€ ์ „ํ˜€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋™์ž‘ ๊ณผ์ •(๊ฐ„์„  ์™„ํ™” ๊ณผ์ •) 1. ๋ชจ๋“  ๊ผญ์ง“์ ์„ .. 2023. 9. 4.
[NestJS] MongoDB์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ โ€ป ๊ธฐ๋ก์šฉ โ€ป 1. mongoose ์„ค์น˜ npm install --save @nestjs/mongoose mongoose 2. app.module.ts : nestjs ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ MongoDB์™€์˜ ์—ฐ๊ฒฐ์„ ์„ค์ • import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { MongooseModule } from '@nestjs/mongoose'; //mongoDB ์—ฐ๊ฒฐ import { VideoModule } from './video/video.module'; @Module({ imports: [Mongoos.. 2023. 7. 12.
[TIL] Pintos Project1 - Threads ์ •๋ฆฌ โ€ป git book ๊ธฐ์ค€์œผ๋กœ ์ดํ•ดํ•œ ๋‚ด์šฉ ์ •๋ฆฌ โ€ป 0. ๊ฐœ๋… ๋ฐ ์ฝ”๋“œ ์ •๋ฆฌ 1. thread CPU ์ด์šฉ์˜ ๊ธฐ๋ณธ ๋‹จ์œ„, ๋™์ผ ํ”„๋กœ์„ธ์Šค์˜ ์Šค๋ ˆ๋“œ๋“ค์€ ์ฝ”๋“œ ์˜์—ญ, ๋ฐ์ดํ„ฐ ์˜์—ญ, ์šด์˜์ฒด์ œ ์ž์›๋“ค์„ ๊ณต์œ  ํ•€ํ† ์Šค์—์„œ๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ ํ”„๋กœ์„ธ์Šค(Single thread process)๋ฅผ ๊ตฌํ˜„! ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ณ€ํ™”๊ฐ€ ์Šค๋ ˆ๋“œ์˜ ์ƒํƒœ๋ณ€ํ™”์™€ ๋™์ผํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๊ตฌํ˜„ํ•จ ์ด๋Ÿฌํ•œ ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ชฉ์ ์€ CPU ์‚ฌ์šฉ๋ฅ ์„ ์ตœ๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•จ์ด๋ฉฐ, ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋“  ํ•ญ์ƒ ์‹คํ–‰ ์ค‘์ด๊ฒŒ ํ•œ๋‹ค. time sharing(์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ) : ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค ์‚ฌ์ด์—์„œ CPU๋ฅผ ์ž์ฃผ ์ „ํ™˜ํ•จ์œผ๋กœ์จ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰๋˜๋Š” ๋™์•ˆ ๊ฐ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. Process scheduler : CPU์—์„œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•ด ์‹ค.. 2023. 6. 28.
[WIL] Pintos 4์ฃผ์ฐจ - VM(2) (์ฃผ๊ฐ„๊ณต์œ ) 1. ์ผ์ • โœ… 06.19 ~ 06.20 Git book ๊ธฐ์ค€ lazy loading ๊ตฌํ˜„ ์™„๋ฃŒ Git book ๊ธฐ์ค€ stack growth ๊ตฌํ˜„ ์™„๋ฃŒ โœ… 06.21 ~ 06.23 Git book ๊ธฐ์ค€ Memory mapping ๊ตฌํ˜„ ์™„๋ฃŒ โœ… 06.24 ~ 06.25 Git book ๊ธฐ์ค€ Swap In/Out ๊ตฌํ˜„ ์™„๋ฃŒ 2. ์ฃผ์š” ํ•™์Šต 1. Stack growth ์‚ฌ์šฉ ์ด์œ  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ๋™์•ˆ์— ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊นŠ์ด๊ฐ€ ๊นŠ์–ด์ง€๊ฑฐ๋‚˜ ํฐ ์ง€์—ญ ๋ณ€์ˆ˜ ๋“ฑ์œผ๋กœ ์ธํ•ด ์Šคํƒ์˜ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ์Šคํƒ ์˜์—ญ์„ '์„ฑ์žฅ'์‹œํ‚ค๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ "์Šคํƒ ์„ฑ์žฅ(stack growth)"์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2. Pintos ์—์„œ ๊ตฌํ˜„๋œ ๋ฐฉ์‹ 1. ์ดˆ๊ธฐ ์Šคํƒ ์ƒํƒœ static bool setup_.. 2023. 6. 25.
[WIL] Pintos 3์ฃผ์ฐจ - VM(1) (์ฃผ๊ฐ„๊ณต์œ ) 1. ์ผ์ • โœ… 06.12 ~ 06.15 ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ฐœ๋… ๊ณต๋ถ€ git book ์ฝ๊ธฐ ๋ฐ ๊ฐ•์˜ ํ•™์Šต ์šด์˜์ฒด์ œ ์ฑ… ์ฝ๊ธฐ โœ… 06.16 Git book ๊ธฐ์ค€ Memory Management ๊ตฌํ˜„ โœ… 06.17 ~ 06.18 Git book ๊ธฐ์ค€ Anonymous Page ๊ตฌํ˜„ 2. ์ง„ํ–‰ ์ƒํ™ฉ 1. SPT ๊ตฌ์กฐ pml4๊ฐ€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์˜๋ฏธํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. git book ๊ธฐ์ค€์œผ๋กœ Memory Management ๊ตฌํ˜„ ์™„๋ฃŒ 2. Anonymous Page ๊ตฌํ˜„์€ ํ•ด๋ณธ ์ƒํƒœ Project 2 - userprog (....All fail....) 123 of 141 tests failed 2023. 6. 18.
[TIL] Pintos - ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ๊ฐœ๋… ๊ณต๋ถ€2 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 10026๋ฒˆ - ์ ๋ก์ƒ‰์•ฝ import sys from collections import deque N = int(sys.stdin.readline()) pic = [list(sys.stdin.readline().strip()) for _ in range(N)] dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(x, y) : queue = deque() queue.append((x, y)) visited[x][y] = True while queue : cx, cy = queue.popleft() for i in range(4) : nx, ny = cx + dx[i], cy + dy[i] if nx >= 0 and nx = 0 .. 2023. 6. 15.
[TIL] Pintos - ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ๊ฐœ๋… ๊ณต๋ถ€1 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 2023๋ฒˆ - ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜ import sys N = int(sys.stdin.readline()) result = [] #์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜ def isPrime(n) : for i in range(2, int(n**(1/2))+1) : if n % i == 0 : return False return True #๋ฐฑํŠธ๋ž˜ํ‚น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ ํƒ์ƒ‰ def dfs(depth, n) : if depth == N : if isPrime(n) : result.append(n) return for i in range(10) : nn = n*10 + i if isPrime(nn) : dfs(depth+1, n*10+i) prime = [2, 3, 5, 7] for p in prime : df.. 2023. 6. 14.
[WIL] Pintos 2์ฃผ์ฐจ - Userprog (์ฃผ๊ฐ„๊ณต์œ ) 1. ์ผ์ • ๊ณ„ํš โœ… 06.01 ๋Œ€๋žต์ ์ธ ์ผ์ • ์กฐ์œจ ๊ฐœ์ธ ์ด๋ก  ๊ณต๋ถ€ โœ… 06.02 gitbook ๋ฐ ๊ฐ•์˜ ํ•™์Šต โœ… 06.03 ~ 06.05 passing argument ๊ตฌํ˜„ โœ… 06.06 ~ 06.11 system call ๊ตฌํ˜„ 2. ์ฃผ์š” ํ•™์Šต user mode vs kernel mode 1. user mode User ๋ชจ๋“œ์—์„œ๋Š” ์ œํ•œ๋œ ์‹œ์Šคํ…œ ์ž์›์—๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ ํŒŒ์ผ ์‹œ์Šคํ…œ, ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ, ์ž…์ถœ๋ ฅ ์žฅ์น˜๋“ฑ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง์ ‘์ ์œผ๋กœ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ ์ œ์–ด ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. 2. kernel mode ์œ ์ € ๋ชจ๋“œ์—์„œ ์š”์ฒญ → syscall_entry๋ฅผ ํ†ตํ•ด ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ์ง„์ž… → rsp = ์ปค๋„ ์Šคํƒ ํฌ์ธํ„ฐ syscall_handler : ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ์š”๊ตฌ.. 2023. 6. 12.
[TIL] 1377๋ฒˆ - ๋ฒ„๋ธ” ์ •๋ ฌ 1. 1377๋ฒˆ - ๋ฒ„๋ธ” ์ •๋ ฌ import sys N = int(sys.stdin.readline()) array = [[int(sys.stdin.readline()), i] for i in range(N)] array.sort() max = -sys.maxsize for i in range(N) : t = array[i][1] - i if max < t : max = t print(max+1) ์ด ๋ฌธ์ œ๋Š” ๋ฒ„๋ธ” ์ •๋ ฌ์‹œ ์™„๋ฃŒ๋˜๋Š” ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฃผ์–ด์ง„ c++ ์ฝ”๋“œ๋กœ๋„ ๋‹ต์€ ๊ตฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ฆ‰, ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์€ ๋ฒ„๋ธ” ์ •๋ ฌ ๊ณผ์ •์„ ์จ๋ณธ ๊ฒƒ์ด๋‹ค. ๋ฒ„๋ธ” ์ •๋ ฌ์€ ๋งจ ๋’ค์—์„œ ๋ถ€ํ„ฐ ํฐ ๊ฐ’์ด ๋จผ์ € ์ •๋ ฌ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’.. 2023. 6. 7.
[TIL] OS - System Call 1. ์šด์˜์ฒด์ œ ์„œ๋น„์Šค(Operating System Service) ์‚ฌ์šฉ์ž์—๊ฒŒ ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(User Interface) GUI(๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค) CLI(๋ช…๋ น์–ด ๋ผ์ธ ์ธํ„ฐํŽ˜์ด์Šค) Batch Interface(์ผ๊ด„์ฒ˜๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค) https://ko.wikipedia.org/wiki/์‚ฌ์šฉ์ž_์ธํ„ฐํŽ˜์ด์Šค ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰(Program Execution) ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ(load)ํ•ด ๊ตฌ๋™(Run)ํ•˜๊ณ  ์‹คํ–‰(Execute)ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ •์ƒ์ ์ด๋“  ๋น„์ •์ƒ์ ์ด๋“  ์‹คํ–‰์„ ๋๋‚ผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ(I/O Operation) ์ˆ˜ํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์€ ์ž…์ถœ๋ ฅ์„ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํšจ์œจ๊ณผ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ์ž๋“ค์ด ์ง์ ‘ ์ œ์–ด๋ฅผ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์šด์˜์ฒด์ œ๊ฐ€ ์ˆ˜๋‹จ ์ œ๊ณต ํ†ต์‹ (Co.. 2023. 6. 7.
[WIL] Pintos 1์ฃผ์ฐจ - Threads (์ฃผ๊ฐ„๊ณต์œ ) 1. ์ผ์ • ๊ณ„ํš โœ… 05.25 ๊ฐœ์ธ ๋…ธํŠธ๋ถ์— ์šฐ๋ถ„ํˆฌ ํ™˜๊ฒฝ ์„ค์ • ๋Œ€๋žต์ ์ธ ์ผ์ • ์กฐ์œจ ๊ฐœ์ธ ์ด๋ก  ๊ณต๋ถ€ โœ… 05.26 git book ์ฝ๊ธฐ os (thread, processor ๋“ฑ) ๊ด€๋ จ ๊ฐœ๋… ๊ณต๋ถ€ ๋ฐ ๊ณต์œ  โœ… 05.27 Alarm ๊ตฌํ˜„ 1์ผ์ฐจ thread.c timer.c ์ฝ”๋“œ ๋ถ„์„ โœ… 05.28 Alarm ๊ตฌํ˜„ 2์ผ์ฐจ โœ… 05.29 Priority ๊ตฌํ˜„ 1์ผ์ฐจ synch.c ์ฝ”๋“œ ๋ถ„์„ โœ… 05.30 Priority ๊ตฌํ˜„ 2์ผ์ฐจ โœ… 05.31 Priority ๊ตฌํ˜„ 3์ผ์ฐจ 2. ์ฃผ์š” ํ•™์Šต synch.c - lock_acquire() : donation list ์ €์žฅ๋ฐฉ์‹์˜ ์ฐจ์ด 1. donate ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ›„๋ณด์ž๋“ค ์ €์žฅ void lock_acquire (struct lock *lock) { ASSERT (l.. 2023. 6. 1.
[TIL] OS ์šฉ์–ด ์ •๋ฆฌ 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 1049๋ฒˆ - ๊ธฐํƒ€์ค„ import sys N, M = map(int, sys.stdin.readline().split()) min_six = sys.maxsize min_one = sys.maxsize # ๊ฐ€์žฅ ์ž‘์€ ๊ฐ€๊ฒฉ ๊ตฌํ•˜๊ธฐ for _ in range(M) : six, one = map(int, sys.stdin.readline().split()) if min_six > six : min_six = six if min_one > one : min_one = one count = N // 6 + 1 #6์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋„๋กํ•˜๋ฉด์„œ ์ ์–ด๋„ N๋ณด๋‹ค ํฐ ๋ชซ ๊ตฌํ•˜๊ธฐ a = min_six * count # ๋ฌถ์Œ์œผ๋กœ๋งŒ ๊ตฌ๋งคํ•  ๊ฒฝ์šฐ b = min_one * N #๋‚ฑ๊ฐœ๋กœ๋งŒ ๊ตฌ๋งคํ•  ๊ฒฝ์šฐ c = m.. 2023. 5. 26.
[TIL] Thread ๊ฐœ๋… ์ •๋ฆฌ 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 26069๋ฒˆ - ๋ถ™์ž„์„ฑ ์ข‹์€ ์ด์ด์ด import sys N = int(sys.stdin.readline()) dance = {'ChongChong' : 1} for _ in range(N) : a, b = sys.stdin.readline().split() # ๋‘ ์‚ฌ๋žŒ ์ค‘ ํ•œ ์‚ฌ๋žŒ๋งŒ ์ถค์„ ์ถ”๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ  dance ๋ชฉ๋ก์— ์ €์žฅ if a in dance and b not in dance: dance[b] = 1 elif a not in dance and b in dance : dance[a] = 1 print(len(dance)) ๊ฐ€๋ณ๊ฒŒ Dictionary๋ฅผ ์ด์šฉํ•ด ํ‘ผ ๋ฌธ์ œ 2. Thread ์–ด๋– ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ, ํŠนํžˆ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„์˜ ๋‹จ์œ„ ํ”„๋กœ์„ธ์Šค์˜ c.. 2023. 5. 25.
[TIL] 7์ฃผ์ฐจ - ๋„˜๊ฒผ๋˜ ๋ถ€๋ถ„ ๋™๋ฃŒํ•™์Šต ์ •๋ฆฌ 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 2559๋ฒˆ - ์ˆ˜์—ด - 2023.05.24 import sys N, K = map(int, sys.stdin.readline().split()) nums = list(map(int, sys.stdin.readline().split())) result = sum(nums[:K]) # ๊ตฌํ•ด์•ผํ•  ๊ฐ’ curr = result # ํ˜„์žฌ 0๋ถ€ํ„ฐ K-1๊นŒ์ง€ ์—ฐ์†๋œ ๊ฐ’์˜ ํ•ฉ for i in range(K, N) : curr = curr - nums[i-K] + nums[i] # ๋งจ์•ž์˜ ๊ฐ’์€ ๋นผ๊ณ  ๋’ค์— ๊ฐ’ ์ถ”๊ฐ€(์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ) if curr > result : result = curr print(result) ์ „์— ๊ณต๋ถ€ํ–ˆ๋˜ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘ผ ๋ฌธ์ œ ์š”์ฆ˜ ์ ์  ํ’€์ˆ˜๋ก ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„.. 2023. 5. 24.
[TIL] Proxy ๊ฐœ๋… ์ •๋ฆฌ 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 2108๋ฒˆ - ํ†ต๊ณ„ํ•™ import sys import math N = int(sys.stdin.readline().strip()) nums = {} # ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๋“ค์˜ ๋“ฑ์žฅ ํšŸ์ˆ˜ lst = [0] * N # ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๋“ค sum = 0 for i in range(N) : num = int(sys.stdin.readline().strip()) if num in nums : nums[num] += 1 else : nums[num] = 1 lst[i] = num sum += num lst.sort() nums = dict(sorted(nums.items())) nums = sorted(nums.items(), key= lambda x : -x[1]) print(round(sum/N).. 2023. 5. 24.
728x90