2024/12 15

[백준 17071] 숨바꼭질 5 [Java]

문제https://www.acmicpc.net/problem/17071풀이수빈이와 동생이 각각 N, K에서 이동할 때 몇 초 후에 서로 만날 수 있는지 계산하는 문제다.수빈이는 다음과 같이 움직일 수 있다.X - 1X + 12X동생은 다음과 같이 움직일 수 있다.N + KK는 경과 시간이자. 동생이 움직일 수 있는 거리를 의미한다. 풀이에서는 step으로 표현하겠다.만약 N == K인 경우 수빈이와 동생은 제자리에서 만나므로 탐색이 불필요하다. 걸린 시간은 0초다.bfs로 N부터 탐색을 시작하자.큐가 비어있거나, k(동생의 이동 위치)가 500,000이하라면 탐색을 계속해야 하므로 동생의 이동거리부터 계산하며 조건식에 포함시켜주자.본격적으로 풀이를 하기전에 시간복잡도에 대해 생각해보자.수빈이는 X - 1..

[백준 28288] Special Event [Java]

문제https://www.acmicpc.net/problem/28288풀이가로, 세로가 5 * N으로 이루어진 일정을 참고해, 각 열에 존재하는 'Y'의 비율 가장 많은 요일을 출력하는 문제다.만약, 각 일정이 가지는 Y의 수가 동일한 경우 ','를 구분자로 같이 출력해주면 된다.우선, 문자열 결합을 쉽게 하기 위해 StringJoiner를 사용했다.이후 입력받은 char 배열에 대해 각 열에 존재하는 Y의 개수를 cnt 배열에 기록해주자.동시에 최대 개수를 따로 기록해주자.이제 cnt 배열에서 기록한 최대 개수와 동일한 개수의 Y가 존재하는 일정을 구분자와 결합해 출력하면 된다.소스코드보기

[Python] pip를 사용한 외장 라이브러리 삭제

Python 개발을 하다보면 다양한 외장 라이브러리를 설치하게 됩니다.VSCode, PyCharm, 또는 콘솔에서 pip를 통해 외장 라이브러리를 설치했을 것입니다. 오늘은 Python의 표준 패키지 관리 도구인 pip를 사용해 인터페이스에 관계없이 외장 라이브러리를 손쉽게 제거할 수 있는 방법에 대해 알아보겠습니다.명시적 삭제삭제하려는 패키지를 직접 명시해 삭제하는 명령어입니다.pip uninstall 아래 명령어는 numpy를 삭제하는 명령어입니다.pip uninstall numpy다음과 같이 여러 라이브러리를 동시에 삭제할 수 있습니다.pip uninstall numpy pandas  설치된 패키지 확인삭제 전 설치된 패키지의 목록을 확인할 수 있습니다.pip list  설치된 패키지 목록화만약 설..

Dev 2024.12.27

[Pikmin Bloom] 피크민 블롬 공략 - 꽃잎 2배로 얻기

오늘은 피크민들에게 정수를 먹이고, 꽃잎을 2배로 얻을 수 있는 방법에 대해 소개하겠습니다. 피크민은 처음에 "잎사귀"로 시작합니다.저의 B-2입니다. 보시는 것처럼 머리 위에 "잎사귀"가 있습니다.피크민에게 "정수"를 주거나, 대열에 넣어 함께 산책하면 머리의 잎사귀는 "꽃봉오리"가 됩니다. 이렇게 머리위에 꽃봉오리를 핀 상태에서 정수를 주어 꽃잎을 피우면, 해당 꽃잎을 두배로 얻을 수 있습니다.  아침밥을 보고 눈 돌아간 노예입니다. 이후 피크민을 눌러 꽃잎을 채취 후 실제로 꽃잎 두개를 얻었는지 확인 해보겠습니다. 보시는 것처럼 하양 헬레보루스가 238개에서 정수 하나로 240개가 된 것을 확인할 수 있습니다. 이 방법은 피크민 머리 위에 "잎사귀"가 있을 때 일반 정수를 주거나 산책을 통해 꽃봉오..

게임 2024.12.24

[백준 02482] 색상환 [Java]

문제https://www.acmicpc.net/problem/2482풀이바텀업보다 탑다운 방식으로 접근하면 쉬워지는 문제다. 원형을 이루는 N개의 색상환 표에 대해 인접하지 않은 색을 K개 선택하는 경우의 수를 구해야 한다.경우의 수가 너무 커지지 않게 1e9 + 3으로 나눈 나머지를 출력해야 한다. dp[N][K] : N개의 색상에 대해 인접하지 않는 K개의 색을 선택하는 경우의 수문제를 단순화해보자. 다음이 성립한다.dp[N][1] = Nif K > N / 2, dp[N][K] = 0문제에서 주어진 그림을 예시로 설명하겠다.우선 빨강색(N번째)을 선택해보자.N번째 색을 선택할 때, 인접한 N - 1번(다홍색)은 선택할 수 없다. N - 2번(주황)을 선택해야하고, 이 때 K - 1개의 색을 선택하면 ..

[백준 02011] 암호코드 [Java]

문제https://www.acmicpc.net/problem/2011풀이대문자 알파벳을 1 ~ 26으로 암호화한 문자열에 대해 해석 가능한 경우의 수를 출력하는 문제다.우선 주어진 입력의 유효성부터 판별해보자.입력이 0인 경우 암호를 해석할 수 없다. 0을 출력하고 종료하자. 이제 점화식을 세워보자.dp[i] : i번째 까지 해석 가능한 경우의 수N이 1의 자리인 경우, dp[1] = 1탐색 대상의 수( N[i - 1] )가 0보다 크다면, 기존 경우의 수만큼 가질 수 있다. dp[i] = dp[i - 1]N[i - 2], N[i - 1]로 이루어진 두 자릿수가 10 이상, 26이하라면, 두 수를 하나의 수로 볼 수 있다. dp[i] = (dp[i] + dp[i - 2]) % MOD소스코드보기

[쉽게 배우는 운영체제] 연습문제 10장 정답

01 버스에서 데이터가 지나다니는 통로를 가리키는 용어는?① 폴링② 채널③ 포트④ 인터럽트02 메모리에 직접 접근할 수 있도록 입출력 제어기에 주어진 권한은?① 폴링② MMIO③ 인터럽트④ DMA03 CPU와 입출력 제어기가 메모리를 분할하여 사용하는 방식은?① 폴링② MMIO③ 인터럽트④ DMA04 컴퓨터와 주변장치를 연결하는 단자는?① 폴링② 채널③ 포트④ 인터럽트05 디스크 저장장치의 가장 작은 저장 단위는?① 플래터② 블록③ 섹터④ 트랙06 디스크 저장장치의 동일한 동심원상의 섹터들을 통칭하는 용어는?① 플래터② 블록③ 디스크 암④ 트랙07 디스크 저장장치에서 여러 개의 플래터에 있는 같은 트랙의 집합을 가리키는 용어는?① 섹터② 블록③ 실린더④ 파킹08 SSD를 위해 개발된 인터페이스 규격은?①..

CS 2024.12.12

[쉽게 배우는 운영체제] 연습문제 8장 정답

01 페이징 기법 중 가상 주소를 표현하는 VA = 에서 페이지 P를 구하는 공식은?가상 주소 / 페이지 크기(가상 주소 / 페이지 크기)의 나머지(페이지 크기 / 가상 주소)의 몫(가상 주소 / 페이지 크기)의 몫02 페이징 기법 중 가상 주소를 표현하는 VA = 에서 거리 D를 구하는 공식은?가상 주소 / 페이지 크기(가상 주소 / 페이지 크기)의 나머지(페이지 크기 / 가상 주소)의 몫(가상 주소 / 페이지 크기)의 몫03 한 페이지 크기가 512B인 시스템에서 가상 주소 12번의 P와 D 값으로 알맞은 것은?04 한 페이지 크기가 512B인 페이징 시스템에서 가상 주소 520번의 P와 D 값으로 알맞은 것은?05 한 페이지 크기가 512B인 페이징 시스템에서 가상 주소 2049번의 P와 D 값으로..

CS 2024.12.12

[쉽게 배우는 운영체제] 7장 연습문제 정답

01 컴파일러가 일차적으로 번역하여 만든 파일은?연결 단계목적 코드라이브러리동적 라이브러리02 컴파일에서 오류를 점검하였으나 라이브러리에 속한 파일은 비어 있는 상태로 만들어지는 것은?연결 단계목적 코드라이브러리동적 라이브러리03 DLL과 가장 연관 깊은 것은?연결 단계목적 코드디버깅동적 라이브러리04 메모리 관리 유닛이 물리주소로 변환하는 것은?간접 주소상대 주소논리 주소직접 주소05 논리 주소 공간의 74번지에 접근하려고 한다. 해당 프로세스가 물리 주소 124번지에 올라와 있다면 물리 주소 몇 번지에 접근하면 되는가?1251247519806 논리 주소 공간은 몇 번지부터 시작하는가?1100020007 물리 메모리의 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기법은?메모리 오버레이페이징세그먼테이..

CS 2024.12.10