정렬
프로그래머스 코딩테스트 연습 Level1 - 실패율 [ javascript ]
코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 조건에 맞춰서 배열을 생성해서 실패율을 구한 후 인덱스를 기록하고 정렬하였습니다. const solution = (N, stages) => { let userLen = stages.length; return stages .reduce((arr, stage) => { if (stage { const t = el / userLen; userLen -= el; return { loss: t, idx }; }) .sort((a, b) => b.loss - a.loss)..
프로그래머스 위클리 챌린지 4주차 - 직업군 추천하기 [ javascript ]
코딩테스트 연습 - 4주차_직업군 추천하기 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 정렬을 위한 데이터를 뽑아내고 조건에 맞게 정렬하였습니다. const solution = (table, languages, preference) => { return table .map(r => { const row = r.split(" ").reverse(); const name = row.pop(); const score = languages.reduce( (acc, language, idx) => (acc += (row.indexOf(lan..
프로그래머스 위클리 챌린지 6주차 - 복서 정렬하기 [ javascript ]
코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 비교할 데이터를 객체 배열로 map한 후 sort를 통해 문제의 조건에 맞게 정렬하였습니다. const winningPoint = { N: 0, L: 0, W: 1 }; const getWinningRate = head => Array.from(head).reduce((acc, winning) => (acc += winningPoint[winning]), 0) / (head.length - head.match(/N/g).lengt..
백준 18870번 좌표 압축 [ Java ]
18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 값을 입력받은 후 입력 한 순서대로 출력 처리를 해야하기 때문에 sortedNum이라는 배열을 새로 만들어 주었습니다. sum이라는 변수로 해당 숫자의 값을 할당 시켰고 마지막엔 hashmap에서 숫자를 탐색해서 숫자 키에 해당하는 값을 출력하였습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader..
백준 2910번 빈도 정렬 [ Java ]
2910번: 빈도 정렬 첫쨰 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 주어진 문제의 조건을 맞추기 위해 숫자에 대해 2개의 값을 저장했습니다. ( 개수, 인덱스 ) 1차적으로 개수를 기준으로 내림차순 정렬하고 개수가 같을 경우 인덱스를 기준으로 오름차순 정렬을 하였습니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStrea..
백준 3273번 두 수의 합 [ Java ]
3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 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)); int n = Integer.pa..
백준 1431번 시리얼 번호 [ Java ]
1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 1,000보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루 www.acmicpc.net java8의 스트림을 이용하여 풀었습니다. 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)); StringBuilder sb = new StringBuilder(); ..
백준 10825번 국영수 [ Java ]
10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 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)); StringBuilder sb = new StringBuilder(); int N = Integer.pa..
프로그래머스 코딩테스트 연습 Level1 - 문자열 내 마음대로 정렬하기 [ Java ]
코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1� programmers.co.kr 기준 문자가 같은경우엔 사전 순 정렬이기 때문에 사전순으로 먼저 정렬한 후에 기준 문자에 대해 정렬 하였습니다. import java.util.*; class Solution { public String[] solution(String[] strings, int n) { Arrays.sort(strings); Arrays.sort(strings, new Comparator(){ @Override p..