Loading...

[프로그래머스] 폰켓몬 (javascript)

만약 중복되지 않은 수가 n/2개와 같거나 크면 최대 개수는 n/2이다. {2,2,3,4,5,6} => {2,3,4,5,6} => 5개 중에 아무거나 3개 뽑으면 된다. 만약 중복되지 않은 수가 n/2보다 작다면 아무리 많은 경우가 있어도 최대 중복되지 않은 개수이다. {2,2,2,2,3,3,3,3} => {2,3}

[swexpert] 1238. Contact (java, bfs)

hashSet은 중복되는 값이 들어온다고 해서 없애주기 위해 사용했다. 링크드 리스트를 배열과 조합하여 시작하는 숫자들(부모 노드들)은 배열에 넣고 해당 숫자에서 뻗어나가는 자식들은 노드리스트에 넣었다. import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Solution { static int n; static int start,tc; static LinkedList[] list; static int answer,total_cnt; public stati..

2021. 3. 13. 20:46

[운영체제 1주차 스터디] 공룡책 2장 운영체제 구조 정리

목차 Operating system services System calls Types of system calls operating system structure 운영체제에서 제공하는 서비스 운영체제는 컴퓨터 프로그램이 실행되는 환경을 제공한다. 그를 위해서 위와 같은 서비스를 제공한다. 여러 프로그램을 돌리기 위해 멀티 프로세싱을 하게 되고 그런 과정에서 동기화 문제가 발생하며 데드락이 발생할 수 있다. 앞으로 (공룡책에서) 주로 배우게 될 서비스 ⇒ 프로그램 실행(관리 부문), file System 나머지는 상대적으로 마이너하다. 운영체제 각 서비스 정리 UI (유저 인터페이스) 부분 CLI: 사용자가 텍스트 명령으로 명령을 내리는 방식. (SHELL, MS-DOS, 애플 소프트 베이직) 배치 인터페..

[프로그래머스] 순위 (javascript, 플로이드와샬, level3)

이런 서로 간의 순위를 알아내는 문제를 만나면 못 풀었었는데 플로이드 와샬 알고리즘이라고 한다. (음... 잊었군) 중간 노드 개념이 어려웠었는데 이렇게 a가 mid를 이기고 mid가 b를 이기면 a가 b를 이김 이런식으로 보니까 이해했다. 백준 순위 문제와 같다니까 그거는 자바로 풀어봐야겠다. function solution(n, results) { var answer = 0; // 1부터 시작 주의 const graph=Array.from({length:n+1},()=>Array(n+1).fill(false)); results.map((item)=>{ const [win,lose]=item; graph[win][lose]=1; //이긴 경우 1 graph[lose][win]=-1; //졌을 경우 -1..

[프로그래머스] 이중 우선순위 큐 (javascript)

작은 순으로 정렬하고 마지막 숫자를 빼면 가장 큰 수가 빠진다. 큰 순으로 정렬하고 마지막 숫자를 빼면 가장 작은 수가 빠진다. function solution(operations) { const q=[]; for(let i=0;ia-b); q.pop(); }else{ q.sort((a,b)=>b-a); q.pop(); } } } q.sort((a,b)=>a-b); return q.length===0?[0,0]:[+q[q.length-1],+q[0]]; }

[프로그래머스] 디스크 컨트롤러 (javascript, 우선순위큐, 그리디)

첫 작업은 도착 시간이 빠른 순으로, 그 다음부터는 이미 도착한 것들 중에서 작업 시간이 짧은 것을 큐에 넣어서 진행한다. (매번 재정렬을 해준다) function solution(jobs) { var answer = 0; jobs.sort((a,b)=>a[0]-b[0]);// 첫 작업은 가장 먼저오는 걸로 const pq=[];//우선 순위 큐 (시작이 가능한 일들이 들어가며 작업시간 오름차순정렬됨) let i=0, time=0; while(i

[프로그래머스] 섬 연결하기 (javascript)

최소 가중치를 먼저 연결하는 문제이다. 크루스칼 알고리즘으로 푸는 사람들도 많다. 나는 다른 방법으로 푸는 걸 참고해서 풀었다. 순환이 생기지 않기 위해 한 쪽이 방문하면 다른 한쪽은 방문을 안한 경우만 탐사한다. function solution(n, costs) { var answer = 0; //비용이 작도록 정렬 costs.sort((a,b)=>a[2]-b[2]); const vis=new Array(n).fill(false); const bridge=new Array(costs.length).fill(false); //다리 연결의 시작 vis[costs[0][0]]=true; vis[costs[0][1]]=true; answer+=costs[0][2]; let cnt=1; //연결 된 갯수 whi..

[프로그래머스] 단어 변환 (javascript)

단순 조합 문제~~ function solution(begin, target, words) { var answer = 0; let vis=new Array(words.length).fill(false); function dfs(cur,target,cnt){ if(cur===target){ if(answer===0 || cnt

[일상] 개발 공부 & 싸피 생활 근황

1. 싸피 ​ 코로나 때문에 온라인으로 싸피 수업을 하고 있는데 나는 온라인 수업이 너무 좋다. ​ 지금도 피곤한데 오프라인으로 강남까지 왔다갔다했다면 난 아마 피곤해 죽었을 것이다.. ​ 온라인 수업이라 씻기 전까지 잘 수도 있고 쉬는시간이나 점심 시간에 침대에 엎어져있을 수 있다는 것이 너무 좋다 ​ 오프라인이면 맛있는 밥은 공짜겠지만.. 다른 공부할 시간이 확실히 줄어들 것 같다. ​ 현재 진도가 그냥 미쳤다. 일단 알려줄 테니 보아라 와다다다 이렇게 나가는 것 같은데 일단 기초는 건드려보는 건 좋은데 좀 더 천천히 자세히 나가는게 좋았을 거 같다 ㅠㅠ ​ 시험이 어떻게 나올지도 감이 안잡혀서 이번에는 그냥 평소대로 시험봐야할 것 같다. ​ 2. 면접 ​ 이번 달에 예정된 면접이 있다. 내가 가고 ..

[프로그래머스] 후보키 (javascript)

* 2021-04-13 다시 푼 풀이 function solution(relation) { var answer = 0; let rlen=relation.length; let clen=relation[0].length; const subset=[]; const set=new Set();//인덱스 조합 function comb(cnt,max,start){ if(cnt===max){ // 최소성 확인 (인덱스 중복 검사) let minimum=true; let sarr=Array.from(set); for(let i=0;i