본문 바로가기
반응형

분류 전체보기313

[백준/Python] 17070번 - 파이프 옮기기1 HTML 삽입 미리보기할 수 없는 소스 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다. 파이프는 매우 무겁기 때문에, 유현이는 파이프를 밀어서 이동시키려고 한다. 벽에는 새로운 벽지를 발랐기 때문에, 파이프가 벽을 긁으면 안 된다. 즉, 파이프는 항상 빈 칸만 차지해야 한다... 2024. 1. 2.
[백준/Python] 17136번 - 색종이 붙이기 HTML 삽입 미리보기할 수 없는 소스 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크기가 10×10인 종이 위에 붙이려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 0 또는 1이 적혀 있다. 1이 적힌 칸은 모두 색종이로 덮여져야 한다. 색종이를 붙일 때는 종이의 경계 밖으로 나가서는 안되고, 겹쳐도 안 된다. 또, 칸의 경계와 일치하게 붙여야 한다. 0이 적힌 칸에는 색종이가 있으면 안 된다. 종이가 주어졌을 때, 1이 적힌 모든 칸을 붙이는데 필요한 색종이의 최소 개수를 구해보자. HTML 삽입 미리보기할 수 없는 소스 총 10.. 2024. 1. 2.
[백준/Python] 2566번 - 최대값 HTML 삽입 미리보기할 수 없는 소스 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다. HTML 삽입 미리보기할 수 없는 소스 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. HTML 삽입 미리보기할 수 없는 소스 ​ 입력을 받아 이를 2차원 리스트의 형태로 저장하고 for.. 2024. 1. 2.
[백준/Python] 18870번 - 좌표 압축 HTML 삽입 미리보기할 수 없는 소스 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. HTML 삽입 미리보기할 수 없는 소스 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. HTML 삽입 미리보기할 수 없는 소스 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. HTML 삽입 미리보기할 수 없는 소스 1 ≤ N ≤ 1,000,000 -109 ≤ Xi ≤ 10.. 2024. 1. 2.
[백준/Python] 2292번 - 벌집 HTML 삽입 미리보기할 수 없는 소스 육각형으로 이루어진 벌집이 있고, 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호가 주어진다. 이때 1에서 N번 방 까지 갈때 몇개의 방을 지나는지 구하는 문제 HTML 삽입 미리보기할 수 없는 소스 1을 기준으로 주변에 방은 6, 12, 18 ...개씩 6의 구구단 형식으로 늘어나는 것을 볼 수 있다. 이를 활용하면 정수 N이 주어졌을 때 1로부터 몇 칸 떨어져 있는지 구할 수 있다. 1 => 1 2~7 => 1+(1~6) *1로 부터 같은거리 만큼 떨어져 있는 수는 6개 8~19 => 1+6+(1~12) *1로 부터 같은거리 만큼 떨어져 있는 수는 12개 20~37=> 1+6+12+(1~18) *1로 부터 같은거리 만큼 떨어져 있는 수는 .. 2024. 1. 2.
[Algorithm/기본지식] 소수 판별하기 HTML 삽입 미리보기할 수 없는 소스 정수 N이 주어졌을 때, 소수인지 아닌지 판별하는 방법은 2~N의 제곱근 사이의 수들로 정수 N이 나뉘어지는지 확인하면 된다. $$a=\sqrt{N}$$​ $$N=b_1\times b_2\times ...b_n\ \left(N의\ 소인수\ 분해\right)$$ ​ 임의의 정수 N의 제곱근을 a라고 한다. 정수 N이 소인수 분해된다고 가정 했을 때, 가장 큰 소인수가 a보다 크거나 같다면 정수 N의 남은 소인수는 무조건 a보다 같거나 작을 수 밖에 없다. a가 N의 제곱근이라서 정수 N은 (a보다 큰 소인수 * a보다 작은 소인수)로 나타나기 때문이다. ​ 이를 활용하면 1. N이 소수가 아닐 때, a보다 큰 소인수가 없는 경우 2. N이 소수가 아닐 때, a보다 크.. 2024. 1. 2.
[백준/Python] 11653번 - 소인수분해 HTML 삽입 미리보기할 수 없는 소스 정수 N이 주어졌을 때, 소인수 분해를 해야한다. (단, 1 입력 시 출력X) HTML 삽입 미리보기할 수 없는 소스 정수 N을 소인수분해 하기 위해서, 정수 N이 소수인지 아닌지 판별하는 방법을 활용했다. HTML 삽입 미리보기할 수 없는 소스 정수 N의 제곱근을 a라고 했을 때, 정수 N의 소인수 중 a보다 크거나 같은 소인수가 존재 하면, 나머지 소인수는 전부 a보다 작거나 같을 수 밖에 없다. 그러므로 for 문을 이용해 2부터 N의 제곱근 사이의 수로 정수 N이 나눠지는지 확인하고, 나눠지고 남은 수를 출력하면 소인수 분해가 끝난다. ​ N의 소인수들이 전부 a보다 작거나 같을 경우 정수 N의 소인수를 전부 구할 수 있다. N의 소인수 중 a보다 큰 소인수.. 2024. 1. 2.
[Computer Science] 운영체제 - 프로세스, 스레드 HTML 삽입 미리보기할 수 없는 소스 운영체제의 일부로써 하드웨어와 프로세스의 운용을 위한 소프트웨어 (운영 체제의 기능 가운데 운영 체제를 구성하는 프로세서와 운영 체제의 제어로 수행되는 프로그램에 대하여 자원 할당을 수행하는 부분) 운영 체제의 복잡한 하드웨어 내부를 일관되고 추상적으로 볼 수 있도록 인터페이스 제공 CPU를 얼만큼씩 어떠한 일에 쓸 것인가 등의 스케쥴링을 한다. - 커널은 디스크에 파일로써 존재하는 프로그램이며 시스템이 기동 될 때 boot 프로그램에 의해 구동되며 메모리에 상주된다. 기본적으로 프로세스와 파일 관리를 수행하며 그 밖에 입출력 장치관리, 메모리 관리 및 시스템 호출 인터페이스기능을 수행한다. 커널은 메모리, 디스크, 네트워크카드, 비디오 카드 등과 같은 모든 하드웨.. 2024. 1. 2.
[Computer Science] 운영체제 - 스레드 동기화 HTML 삽입 미리보기할 수 없는 소스 스레드는 기본적으로 비동기식으로 동작한다. 스레드는 프로세스와 달리 프로세스 내의 메모리를 공유해 사용하기 때문에 여러개의 스레드가 동시에 수행되고 있는 상황에서는 자원에 대한 충돌이나 오류가 발생할 수 있다. 이러한 문제를 방지하기 위해 스레드 동기화 처리가 필요하다. ​ 스레드는 같은 주소 공간에 존재하며 같은 메모리를 참조하는 다른 스레드에 영향을 미치는데 이때 스케줄링에 따라 프로세스를 상태가 변경될때 필요한 내용을 PCB에 저장, 로드 시키는 과정을 문맥교환이라고 한다. 스레드에서는 예외 처리기와 스케줄링 우선순위, 시스템에서 일정을 잡을 때까지 스레드 컨텍스트를 저장하는데 사용되는 구조 집합을 유지 관리 한다. 스레드 컨텍스트는 스레드의 CPU레지스터와 .. 2024. 1. 2.
[Computer Science] 운영체제 - CPU 스케줄링, 문맥교환(Context-switching) HTML 삽입 미리보기할 수 없는 소스 어떤 스레드가 어떤 우선순위로 CPU를 사용할 것인지 결정하고 수행하는 과정 즉, 스레드가 작업을 처리하기 위해 중앙처리를 할당 받는 정책을 계획하고 처리하는 방식 ​ 목적 CPU 효율성 향상 응답시간의 최소화를 통해 시스템 내의 자원 활용을 최대화 특정 프로세스 실행의 시한성 보장 공평성, 예측성 향상 및 급격한 성능 저하 방지 ​ 1. 장기 스케줄러 어느 작업을 등록하여 시스템 자원을 이용할 수 있게 할 것인지 결정 2. 중기 스케줄러 어느 프로세스에게 메모리를 할당할 것인지를 결정 3. 단기 스케줄러 준비 상태의 프로세스들 중 어떤 것에 CPU를 할당할 것이지를 결정 ​ 스케줄링 방식​ # 선점형(Preemptive) 스케줄링 - 선점형 스케줄링 방식은 한 프.. 2024. 1. 2.
[프로그래머스/Python] 하노이의 탑 HTML 삽입 미리보기할 수 없는 소스 하노이 탑은 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것이다. ​ 한 번에 하나의 원판만 옮길 수 있습니다. 큰 원판이 작은 원판 위에 있어서는 안됩니다.​ 하노이 탑의 세 개의 기둥을 왼쪽 부터 1번, 2번, 3번이라고 하면, 1번에는 n개의 원판이 있고 이 n개의 원판을 3번 원판으로 최소 횟수로 옮기려고 한다. 이 때, 1번 기둥에 있는 원판의 개수 n이 매개변수로 주어지면 n개의 원판을 3번 원판으로 최소로 옮기는 방법을.. 2024. 1. 2.
[Unity] Script LifeCycle [스크립트 생명주기] HTML 삽입 미리보기할 수 없는 소스 유니티를 사용하면서 Awake, Start 등 기본적으로 실행해주는 함수들이 많다. ​ 그런데 여기서 Awake도 실행하면 처음에 시작하고 Start도 처음에 실행하면 시작하는데 무슨 차이가 있을까? Unity의 공식 문서에 따르면 생명주기는 다음과 같다.​ 자주 쓰는 함수들을 대략적으로 설명하면 다음과 같다. [요약] Awake : 가장 먼저 호출되는 함수로 처음 한 번만 실행된다. Start : Update 전에 호출되는 함수로 처음 한 번만 실행된다. OnEnable : 오브젝트가 활성화 직후 호출한다.​ FixedUpdate : 초당 50번 실행 하며 Update 보다 빨리 호출되는 함수다. (dfault : 0.02) Update : 컴퓨터의 성능에 따라 .. 2024. 1. 2.
[Algorithm/기본지식] 소수 판별하기 정수 N이 소수인지 아닌지 판별하는 방법 정수 N이 주어졌을 때, 소수인지 아닌지 판별하는 방법은 2~N의 제곱근 사이의 수들로 정수 N이 나뉘어지는지 확인하면 된다.​$$a=\sqrt{N}$$$$N=b_{1}\times b_{2}\times b_{3}\times\cdots\times b_{n} $$   (N의 소인수분해)임의의 정수 N의 제곱근을 a라고 한다.  정수 N이 소인수 분해된다고 가정 했을 때, 가장 큰 소인수가 a보다 크거나 같다면 정수 N의 남은 소인수는 무조건 a보다 같거나 작을 수 밖에 없다.a가 N의 제곱근이라서 정수 N은 (a보다 큰 소인수 * a보다 작은 소인수)로 나타나기 때문이다.​이를 활용하면1. N이 소수가 아닐 때, a보다 큰 소인수가 없는 경우2. N이 소수가 아닐 때.. 2023. 2. 10.
반응형