목록분류 전체보기 (75)
오늘은 여기까지
https://www.acmicpc.net/problem/1931 개념: 그리디 문제한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작..
https://www.acmicpc.net/problem/18230 개념: 그리디 접근N이 홀수라면 2x1 타일 하나를 우선 선택한다.N/2번 동안 for문을 돌면서2x2 타일 1개 vs 2x1 타일 2개 값을 비교한다. 값이 더 큰 경우를 선택한다. 전체코드import java.util.*;import java.io.*;public class Main{ static int N, A, B; static ArrayList twoByOne; static ArrayList twoByTwo; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReade..
https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근방법 1. 코스의 요리 개수를 기준으로 가능한 조합을 구한다.2. 주문내역을 돌면서 가능한 조합을 구한다.3. 각 조합의 주문 횟수를 센다.4. 가장 많이 주문된 조합을 정답에 추가한다. 2개의 요리로 만들 수 있는 조합을 구하기로 한다. - 주문내역에서 2개를 선택한 조합을 구한다. - 각 조합이 몇 번 주문됐는지 센다. - 최대 주문 횟수만큼 주문된 조합을 정답에 추가한다. 3개의 요리로 만들 수 있는 조합을 구한다. ..
https://school.programmers.co.kr/learn/courses/30/lessons/92334 사용개념: 해시 import java.util.*;class Solution { public int[] solution(String[] id_list, String[] report, int k) { ArrayList answer = new ArrayList(); HashMap reported = new HashMap(); // 유저별 신고 당한 횟수 HashMap> reportByUser = new HashMap(); // 유저별 신고한 id 저장 for (String id : id_list) { rep..
https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 사용개념: 해시 1. 노래 정보를 하나의 객체로 관리한다.class Song { int id; int plays; Song(int id, int plays) { this.id = id; this.plays = plays; }} 2. 데이터 정리장르별 총 재생횟수를 저장할 맵 하나, 장르별 노래 정보 (고유번호, 재생횟수) 저장할 맵 하나가 필요하다.전체를 순회하면서 데이터를 정리한다.Hash..
https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해시 연습문제~ 해시맵 하나에는 원래 구매 품목이랑 개수 정보를 담고, 다른 하나는 탐색하면서 개수 조절하는 용도이다. 전체코드import java.util.*;class Solution { public int solution(String[] want, int[] number, String[] discount) { int answer = 0; HashMap map = new HashMap(); fo..
https://www.acmicpc.net/problem/1238 사용개념: 다익스트라 문제 설명 1. N명의 학생이 각자의 마을에서 X번 마을로 가는 최단 시간2. 파티가 끝난 후 다시 자신의 마을로 돌아가는 최단 시간3. 이 왕복 시간이 가장 오래 걸리는 학생의 소요시간을 찾는 것 풀이 1. 다익스트라를 2번 사용한다X로 가는 최단 시간 (마을 → X)되돌아가는 최단 시간 (X → 마을)2. 정방향 그래프, 역방향 그래프 활용정방향 그래프로 각 정점에서 X까지 최단 시간을 구한다역방향 그래프로 X에서 각 정점까지 최단 시간 구한다3. 마지막으로 각 학생별로 두 거리의 합을 구한 뒤 최댓값을 찾는다 전체코드import java.io.*;import java.util.*;public class Main..
https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사용개념: 다익스트라 일반적인 다익스트라 문제다. 주의할 점이라면 무방향/양방향 그래프라는 점, 그리고 두 마을을 연결하는 도로가 여러 개일 수 있다는 점이다. 전체 코드import java.util.*;class Solution { static class Node implements Comparable { int vertex, weight; public Node(..
PCB (Process Control Block)운영체제가 프로세스를 관리하기 위해 사용하는 자료구조이다.커널 주소 공간의 Data 영역 내 존재하며, 프로세스마다 1개씩 있다.OS가 관리상 사용하는 정보Process state, Process ID, 우선순위, scheduling informationCPU 수행 관련 하드웨어 값Program counter, registers메모리 관련Code, Data, Stack의 위치 정보파일 관련Program counter와 같은 context 정보는 CPU에 있는데 왜 PCB에 또 보관하는가? Context Switching을 위해 Context SwitchingCPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정이다. 예를 들어, 프로세스 A에서 B로 CPU..
프로세스의 문맥(context)프로세스 상태에 대한 모든 정보를 뜻한다.하드웨어 문맥Program Counter각종 register프로세스 주소 공간code, data, stack프로세스 관련 커널 자료구조PCBKernel stack프로세스의 상태 Running CPU를 잡고 instruction을 실행 중인 상태 Ready CPU를 기다리는 상태 (나머지 조건을 모두 만족하고) Blocked CPU를 주어도 당장 instruction을 수행할 수 없는 상태Process 자신이 요청한 event(e.g. IO)가 즉시 만족되지 않아 기다리는 상태예를 들어, 키보드 입력을 기다려야 하는 프로세스가 있다고 하자. 해당 프로세스는 Blocked 상태이므로 CPU를 주지 않는다. Ready queue에 있는 다..