본문 바로가기

728x90

BOJ/정렬

(7)
BOJ : 1931 회의실 배정 (JS , nodeJS) 소스코드 let fs = require('fs'); const filePath = process.platform === `linux` ? `/dev/stdin` : `예제.txt`; let input = fs.readFileSync(filePath).toString().split('\n'); const c = console.log n = Number(input[0]) let lst = [] for(let i = 1 ; i { return a[0] - b[0] }) lst.sort((a,b) =>{ return a[1] - b[1]..
BOJ : 11870 좌표압축 (파이썬) 소스코드 import sys n = int(sys.stdin.readline()) lst = list(map(int,sys.stdin.readline().split())) s = sorted(lst) dict = {} a=0 for i in s : if(dict.get(i) == None) : dict[i] = a a+=1 for i in lst : print(dict[i],end=' ') 풀이 딕셔너리를 구현해서 정렬된 리스트 (오름차순)을 순회 하면서 존재하지 않으면 0부터 숫자를 value값에 넣어줌으로서 답을 얻을 수 있습니다. 딕셔너리.get(i) 가 존재하지 않을때 None 을 리턴해주는 것을 기억해야겠다! 문제 https://www.acmicpc.net/problem/18870 18870번:..
BOJ : 2108 통계학 (파이썬) 소스코드 import sys from collections import Counter n = int(sys.stdin.readline()) lst = [] for i in range(n) : num = int(sys.stdin.readline()) lst.append(num) lst.sort() print(round(sum(lst)/n)) middleIndex = n // 2 print(lst[middleIndex]) chlqls = Counter(lst).most_common() if len(chlqls) > 1 : if chlqls[0][1] == chlqls[1][1] : print(chlqls[1][0]) else : print(chlqls[0][0]) else : print(chlqls[0][0..
BOJ : 1461 도서관 (파이썬) 문제 https://www.acmicpc.net/problem/1461 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 풀이 양수 음수를 구분하는 배열을 생성 해줍니다. 첫 번째 조건은 양수인 거리만 존재할때, 반복문을 통해 결과값을 계산해줍니다. 왕복해야하기때문에 *2 를 해줍니다. 한번 왕복하면 count +=1 을 해줍니다. 제일 마지막에 다녀올때는 시작지점으로 올 필요가 없으므로 거리를 빼줍니다. 두번째 조건은 음수인 거리만 존재할 때입니다. 세번째 조건은 양수인 거리와 음수인 거리가 두개 다 존재할 때 입..
BOJ : 1927 최소힙 (파이썬) 문제 https://www.acmicpc.net/problem/1927 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 풀이 이 문제는 파이썬 내장 라이브러리인 heapq와 최소 힙에 대해 알면 쉽게 풀 수 있는 문제이다. 최소힙은 항상 트리의 루트가 최솟값으로 정렬되어있는 이진트리를 의미한다. 소스코드 import heapq import sys h = [] n = int(sys.stdin.readline()) for _ in range(n) : x = int(sys.stdin.readline()) if h : if ..
BOJ : 20291 파일정리 (파이썬) 문제 https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 풀이 우선 문제를 보면 파일명을 기준으로 정렬을 실행해야 할거같은 생각이 들었다. 그래서 일단 split()을 통해 ' . ' 을 구분해주고 확장자만 뽑아서 딕셔너리에 key value를 통해 어떤 확장자가 몇번 나왔는지 카운트를 해줬다. 소스코드 import sys n = int(sys.stdin.readline()) dict = {} for _ in range(n) : s = sys.stdin...
BOJ : 18310 안테나 (파이썬) 문제 https://www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 이 문제는 정렬로 간단하게 풀 수 있는 문제다. 집들을 리스트로 입력을 받고 그 리스트를 len() 함수를 통해 길이를 구한 후 -1을 해준 후 2를 나눈몫을 가진 인덱스를 가진 값이 정답이다. 소스코드 import sys n = int(sys.stdin.readline()) house = list(map(int, sys.stdin.readline().split())) house.sort() le = (len(ho..

728x90