분류 전체보기 681

[PS] BOJ15686 치킨 배달 ( 구현 ) with JAVA

15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net ◎ 문제풀이 2차원 배열로 치킨집과 집의 위치가 좌표로 주어질 때, 집과 치킨집의 거리의 총합이 최소인 치킨집 M개를 선별하고, 치킨집 M개와 집 사이 거리의 총합이 최소일 때의 거리를 구하는 문제이다. 치킨집도 최대 13개이니 무식하게 푸는 것이 좋겠다고 생각했다. 1) 치킨집 M개 조합을 모든 경우를 완전탐색한다. ( DFS ) 2) 모든 경우의 조합과 집 사이의 치킨거리를 구한 뒤, 가장 최소인 치킨거리를 출력한다. N개 중이 M개의 조..

문제풀이 2024.01.18

[OS] 멀티 프로세스 vs 멀티 스레드

[OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리 lordofkangs.tistory.com 지난 포스팅에서 Process에 대해서 다루어 보았다. Disk에 있는 Program을 CPU로 처리하려면 RAM에 메모리를 할당해야 한다. 메모리 할당은 Process 단위로 이루어진다. 메모리라는 독립적인 공간이 확보되면 CPU로 처리될 준비가 되었다고 볼 수 있다. 여기서 한 가지 고민해보자. 많은 프로그램이 병렬처리를 한다. 병렬처리를 구현하려면 어떻게 해야할까? 1) 멀티 프로세스 2) 멀티 스레드 ..

CS/OS 2024.01.18

[OS] 프로세스 스케줄링 ( Process Scheduling )

[OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리 lordofkangs.tistory.com [OS] PCB란 무엇일까? https://lordofkangs.tistory.com/614 [OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코 lordofkangs.tistory.com 지난 포스팅에서 프로세스와 PCB에 대해서 다루어 보았다. Disk에 있는 프..

CS/OS 2024.01.17

[PS] BOJ18111 마인크래프트 ( 구현 ) with JAVA

18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net ◎ 문제풀이 땅을 평탄화 하는데 최소시간이 걸리는 높이와 시간을 구하는 문제이다. 요구하는 조건이 많아 처음에는 막막했지만 다시 생각해보니 쉬운 문제였다. 최고높이와 최저높이의 사이 높이 하나하나의 평탄화 시간을 구한 다음 비교하여 최소시간과 높이를 구하면 되었다. 높이도 최대 256이고 가로세로 최대 500x500이니 삼중for문을 만들어도 최대 64만번 연산한다. 그러므로 시간복잡도에 걸리지 않는다. ◎ 코드 import java.io.*; import ja..

문제풀이 2024.01.16

[OS] PCB란 무엇일까?

https://lordofkangs.tistory.com/614 [OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리 lordofkangs.tistory.com 프로세스(Process)는 CPU가 처리할 수 있도록 RAM 메모리에 할당된 프로그램의 단위이다. 프로세스는 소프트웨어로 다양하다. 그러나 하드웨어인 CPU는 한정되어 있다. 그러므로 프로세스A가 CPU를 점유하고 있으면 스케줄링 정책에 따라 프로세스B로 컨텍스트 스위칭(Context Switching)을 일으켜야 한다. 이렇듯 OS는 CPU 자..

CS/OS 2024.01.15

[OS] 프로세스(Process)란 무엇일까?

개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리어로 변환하고 어셈블러는 어셈블리어를 컴퓨터가 이해할 수 있도록 1과0 변환한 다음 링커가 동작하여 참조하는 라이브러리와 함께 엮으면 실행 가능한 파일(Excutable File)이 만들어 진다. 그리고 실행가능한 파일은 Disk에 저장된다. 이렇게 Disk에 저장된 실행가능한 파일을 두고, 우리는 프로그램(Program)이라 부른다. 그렇다면 프로세스(Process)란 무엇일까? Disk는 크기가 크고 I/O가 느려 CPU와 일할 수 없다. 그래서 CPU와 Disk 사이에는 RAM이 존재한다. D..

CS/OS 2024.01.15

[PS] Programmers - k진수에서 소수 개수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ◎ 문제풀이 n = > k진수로 바꾸었을때, 구분자 0으로 구분되는 소수P의 개수를 구하는 문제이다. 이를 3가지 단계로 나누어 보았다. 1. k진수로 바꾸라. 2. 구분자 0으로 분리하라. 3. 소수 여부를 확인하라. 주의) K진수 안의 십진수를 정수로 변환할 때, Integer 범위를 넘을 수 있으므로 Long 자료형을 사용한다. ◎ 코드 import java.util.*; import jav..

문제풀이 2024.01.15

[PS] Programmers - 신고 결과 받기 with JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ◎ 문제풀이 신고에 대한 입력정보가 주어질 때, 신고자에게 가는 메일의 개수를 구하는 문제이다. 문제를 풀때, 두가지를 신경썼다. 1) 유저와 인덱스를 1대1로 매핑하기 위해, HashMap 자료구조를 사용하였다. 2) 신고 객체에서 신고대상의 신고자의 중복을 방지하기 위해, HashSet 자료구조를 사용하였다. ◎ 코드 import java.io.*; import java.util.*; //신고..

문제풀이 2024.01.15

[PS] BOJ1205 등수 구하기 ( BinarySearch ) with JAVA

https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net ◎ 문제풀이 '비오름차순'(내림차순)으로 정렬된 점수 배열에서 새로운 점수의 랭크를 구하는 문제이다. '정렬'된 배열에서 새로운 점수의 위치를 '탐색'하는 문제이므로, 이분탐색법을 발상했다. ◎ 코드 package org.example.binarySearch; import java.io.*; import java.util.*; //BOJ1205 등수 구하기 public..

문제풀이 2024.01.10

[후기] Goorm Training 쿠버네티스 과정 14회차 후기

Goorm 사에서 주관한 쿠버네티스 교육과정이 마무리 되었다. 23.09.08부터 24.01.05까지 4개월 간의 힘든 여정이었다. 결과도 좋았다. 우수 프로젝트와 우수 수료생으로 뽑혔다. 65만원 상당의 제주도 호텔 펜트하우스 1박권도 부상으로 받았다. 우리가 만든 프로젝트는 아래 링크를 참고하면 된다. Dokcer-DevLink Dokcer-DevLink has 14 repositories available. Follow their code on GitHub. github.com ( 참고로 Dokcer는 오타가 아니다 ㅎㅎ.. ) 결론부터 말하면, 4개월 동안 고통스러웠고 고통스러운 만큼 많은 성장을 하여 정말 만족스럽다. 인프라에 대한 기반지식이 없는 상태에서 쿠버네티스라는 러닝커브가 높은 기술을 ..

후기/참여후기 2024.01.06