본문 바로가기

728x90

정렬

(9)
[프로그래머스] Lv.1 문자열 내 마음대로 정렬하기 [Python] - 문자열 문자열로 구성된 리스트와 정수 n이 주어질 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬, n 번째 글자가 같은 경우 사전순 정렬하는 문제 더보기 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 ..
[프로그래머스] Lv.1 두 개 뽑아서 더하기 [Python] 주어진 정수 배열에 서로 다른 인덱스에 있는 두 수의 합을 모두 모아 오른차순을 정렬한 리스트를 반환하는 함수 만들기 더보기 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. https://school.programmers.co.kr/learn/courses/30/lessons/68644 이중 for문으로 인덱스가 다른 두 원소를 꺼내 그 합을 집합에 저장 >>> 중복 제거 sorted$($$)$로 정렬된 리스트로 ..
[백준] 1931번 회의실 배정 [Python] - 정렬 회의실 사용표 시간을 보고 이어서 사용할 수 있는 최대 회의의 수 구하는 문제 더보기 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회..
[백준] 18870번 좌표 압축 [Python] - 좌표 압축 입력 받은 숫자를 오름차순으로 정렬하고 중복을 없애 인덱스 값으로 치환하는 문제 출력은 원래 받은 숫자의 순서대로 치환한 값을 출력하기 더보기 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 제한 1 ≤ N ≤ 1,000,000 -109 ≤ ..
[백준] 18110번 solved.ac [Python] 30% 절사평균과 반올림으로 점수 매기기 30% 절사평균은 상위 15%, 하위 15%를 각각 제외하고 계산한 평균입니다. 더보기 문제 solved.ac는 Sogang ICPC Team 학회원들의 알고리즘 공부에 도움을 주고자 만든 서비스이다. 지금은 서강대뿐만 아니라 수많은 사람들이 solved.ac의 도움을 받아 알고리즘 공부를 하고 있다. ICPC Team은 백준 온라인 저지에서 문제풀이를 연습하는데, 백준 온라인 저지의 문제들에는 난이도 표기가 없어서, 지금까지는 다양한 문제를 풀어 보고 싶더라도 난이도를 가늠하기 어려워 무슨 문제를 풀어야 할지 판단하기 곤란했기 때문에 solved.ac가 만들어졌다. solved.ac가 생긴 이후 전국에서 200명 이상의 기여자 분들께서 소중한 난이도 의견을 공유..
[백준] 26265번 멘토와 멘티 [Python] - 정렬 멘토와 멘티 이름을 전달 받으면 멘토 이름은 사전 순서대로 멘토 이름이 같으면 멘티 이름은 역순으로 정렬 하는 문제 더보기 문제 서울사이버대학교에는 멘토링 프로그램이 있다. 멘토링 프로그램은 한 명의 멘토$($선배학습자$)$가 여러 명의 멘티$($후배학습자$)$에게 대학 생활에 대한 노하우와 정보 등을 전수하는 것이다. 빅데이터·AI 센터에서 딥러닝 서버를 돌리며 바쁜 나날을 보내던 노교수는, 어느 날 멘토링 회의 참석 요청이 들어와 이를 준비하던 도중 멘토-멘티 순서쌍 목록이 적힌 노트를 찾았다. 하지만 노트가 제대로 정리되어 있지 않아 분석이 어려웠으므로, 마침 센터에서 인턴을 하는 대학원생 뚜루에게 목록의 정렬을 맡기기로 했다. 하지만 논문을 쓰느라 수면 부족에 시달리고 있는 뚜루는 이러한 프로그램..
[백준] 14729번 칠무해 [Python] - 정렬 소수점 셋째짜리까지 표시된 점수들 중 낮은 점수 7개 오름차순으로 출력 더보기 문제 조$($Joe$)$는 중앙대학교 교수이고, 논리회로 설계 과목을 담당하고 있다. 그는 수업을 하면서 7명의 학생을 제외한 나머지 학생들에게 좋은 학점을 주겠다고 약속을 하였다. Joe 교수님을 돕기 위해서 학생들의 최종 성적이 주어질 때, 그의 연구실인 You See Lab으로 데려갈 성적이 좋지 못한 7명의 학생, 칠무해의 성적을 뽑아보자. 입력 첫째 줄에 학생의 수 N$(8 ≤ N ≤ 10,000,000)$이 주어진다. 둘째 줄부터 N개의 줄에는 학생들의 성적이 무작위로 주어진다. 성적은 최소 0점부터 최대 100점까지 0.001 점 단위로 부여된다. 출력 하위 7명의 성적을 점수가 낮은 순으로 각 줄마다 출력한다. ..
[백준] 13414번 수강신청 [Python] 수강신청을 누른 순서 대로 선착순으로 처리되는데, 대기 중 다시 누르면 순번이 뒤로 밀린다. 최종 수강 완료한 학번을 출력하는 문제 수강 가능 인원, 신청을 누른 획수, 그리고 학번이 순서대로 주어진다. 더보기 문제 국민대학교에서는 매 학기 시작 전 종합정보시스템에서 수강신청을 한다. 매 수강신청마다 아주 많은 학생들이 몰려 서버에 많은 부하가 가기 때문에, 국민대학교에서는 수강신청 부하 관리 시스템을 도입하기로 결정하였다. 새로운 관리 시스템은 다음과 같은 방식으로 동작한다. 수강신청 버튼이 활성화 된 후, 수강신청 버튼을 조금이라도 빨리 누른 학생이 대기목록에 먼저 들어간다. 이미 대기열에 들어가 있는 상태에서 다시 수강신청 버튼을 누를 경우 대기목록의 맨 뒤로 밀려난다. 잠시 후 수강신청 버튼이 비..
[백준] 10825번 국영수 [Python] - 정렬 세 과목 점수와 이름 순서대로 정렬하는 문제 더보기 문제 도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어진다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하시오. 국어 점수가 감소하는 순서로 국어 점수가 같으면 영어 점수가 증가하는 순서로 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 $($단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.$)$ 입력 첫째 줄에 도현이네 반의 학생의 수 N $($1 ≤ N ≤ 100,000$)$이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 100보..