Problem Solving/정렬

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Bu..
https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도: 레벨2 유형: 정렬, 구현 fatigue = fatigue[:sum(picks)] 로 곡괭이로 닿지 못하는 부분을 제거해주지 못해서 처음시도에 100점을 받지 못했다. 아래 알고리즘은 입력광물들을 5개씩 끊어서 각 다이아곡괭이, 철곡갱이, 돌곡괭를 이용했을 시 드는 피로도를 [x,y,z]형태로 fatigue[]에저장하였다. 그 후 fatigue를 스톤, 철 ,다이아 피로도 크기순 으로 ..
https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 난이도: 실버1 소요시간: 40분 rank리스트(input)를 1차적으로 오름차순으로 정렬을 해준다. 그 후 서류순위 1위를 result리스트에 넣는다. rank리스트를 순환하면서 result리스트에 마지막에 들어간 사람과 면접순위를 비교한다. 만약 순위가 높다면 result리스트에 추가한다. 이전의 사람과만 비교를 하면 자동적으로 이전전의 사람들도 자동으로 체킹이 된다. 문..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 난이도: 실버2 소요시간: 답을 보았기에 재풀이 필요 입력값으로 (회의시작,끝나는시간) 들을 받는다. 이때 회의시작시간기준으로 정렬을 했더니 풀이가 쉽지 않았다. 끝나는시간을 기준으로 정렬을 하면 쉽게 풀이가 가능하다. 이때 끝나는시간이 같을경우에는 시작이 빠른 회의를 앞쪽으로 보내야 한다. 그래야지 시작시간=끝나는 시간 인 회의도 카운트가 가능하다. 먼저 시작시작 오름차순정렬 -> 끝나는시간 오름차순으로 두번 정렬하여도 되지만 나는 한번에 하는방법을 선택했다. 아래 처럼 하면 x[1]기준으로 오름차순 정렬하고 ..
이것이 코딩테스트다. 182페이지문제이다. 시간체한이 2초인 문제였다. 아래는 나의 코드이다. import sys M,N= map(int,sys.stdin.readline().split()) A=list(map(int,sys.stdin.readline().split())) B=list(map(int,sys.stdin.readline().split())) for i in range(N): min_a= min(A) max_b= max(B) A.remove(min_a) A.append(max_b) B.remove(max_b) B.append(min_a) print(sum(A)) 시간이 꽤 걸리는 코드이다. 지금보니 N과 리스트 크기에 따라 시간초과가 날수도 있을 듯하다.... 아래는 예시코드이다. n, k =..
이 문제는 이것이 코딩테스트다. 180페이지 문제이다. sort함수의 key를 알면 쉽게 풀 수 있는 문제이다. 아래는 나의 코드이다. 입력받는 부분에서 순서만 바꿔주면 돼서 key를 사용하진 않았다. 하지만 어려운 문제에서는 key를 알면 많은 도움이 될 것이다. import sys N = int(sys.stdin.readline()) mylist=[] result=[] for i in range(N): temp=list(sys.stdin.readline().split()) mylist.append((int(temp[1]),temp[0])) mylist.sort() for i in mylist: result.append(i[1]) print(result) 아래에 sort() 함수에 대해 정리 해두었다...
이것이 코딩테스트다 178페이지문제이다. 단순한 정렬 문제이다. sort함수를 쓰면 쉽게 구현 할 수 있다. 다만 sort함수는 기본적으로 오름차순이다. 설정을 바꾸어 주는 것이 이문제의 문제였다. 아래는 나의 코드 import sys N = int(sys.stdin.readline()) numbers=[] for i in range(N): numbers.append(int(sys.stdin.readline())) numbers.sort(reverse=True) print(numbers) 아래는 sort함수의 사용법이다. 리스트.sort()로 사용한다. 숫자는 음수,0,양수 순으로 정렬을 해주고 문자는 대문자가 앞으로 소문자가 뒤로간다. sorted() sorted( , key = , reverse = ..
윤재에요
'Problem Solving/정렬' 카테고리의 글 목록 (2 Page)