Algorithm/Programmers 72

[Lv.2] 가장 큰 수 : Java / Collections.sort(list, comparator)

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1.numbers를 String으로 바꾸기2.문자열 정렬하기3.문자열 a,b에 대해 b+a > a+b 이면 b를 앞으로 오게 함4.이어붙이기*맨 앞 글자가 0이면 0 리턴하기 #Collections.sort(list, comparator)list를 comparator(비교 기준)에 따라 정렬Collections.sort(list, (a, b) -> (b + a).compareTo(a + b)); 경우에두 원소 a, b를 받아서 왼쪽이 더 크면 양수 > (b+a)가 큼 > b를 앞으로작으면 음수 > (a+b)가 큼 > a를 앞으로같으면 0=>내림차순 정렬*오름차순 정..

[Lv.1] 폰켓몬

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해시맵에 종류별로 개수 저장 #예시3, 3, 4, 2, 2, 4N/2는 6/2 > 3[3, 2], [4, 2], [2, 2] ] > 해시맵 개수 3, 3, 3, 2, 2, 2 / N/2는 3[3,3], [2,3] > N/2보다 작은 경우 =>그냥 해시맵 개수=> 해시맵 개수보다 N/2이 작은 경우 > 그냥 N/2 리턴 import java.util.*;class Solution { public int solution(int[] nums) { int answer = 0; Map pocket = new HashMap(); ..

💚[Lv.2] 택배상자 : Java

코딩테스트 연습 - 택배상자알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.kr #고려해야 하는 상황메인 컨테이너 == 트럭 인 경우아니면 보조 top == 트럭 인 경우 pop아니면 메인을 보조 컨테이너로 push=> 다 막히면 종료 import java.util.*;class Solution { public int solution(int[] order) { int answer = 0; int l = order.length; int i = 0; // order에서 원하는 상자 위치 ..

💚[Lv.2] 뒤에 있는 큰 수 찾기

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 시간복잡도도 생각하기 -시간 초과 코드원인 : 이중for문 사용함class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; for(int i=0; i -Stack 사용한 코드이중 for문은 뒤에 있는 숫자들 매번 다 훑어보는거임스택방법은 아직 답 못 찾은 숫자들만 대기줄에 세워두는 것import java.util.*;class Solution { public int[] solution(int[] numb..

[Lv.2] 구명보트 : Java

코딩테스트 연습 - 구명보트알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.kr 포인트 : 몸무게 적은 사람 + 큰 사람 짝지어서 태우기>투 포인터 사용하기 #예시 무거운 사람부터 태우기-정답코드import java.util.*;class Solution { public int solution(int[] people, int limit) { int answer = 0; // 정렬 Arrays.sort(people); // 투포인터 이용 ..

[Lv.2] 오픈채팅방 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr -틀린 코드첫 단어랑 아이디도 Map으로 저장함 > Map은 같은 key가 여러 번 나오면 덮어쓰기 발생, keySet()은 순서 보장해주지X=> 첫 단어랑 아이디는 순서대로 List에 저장하기!import java.util.*;class Solution { public String[] solution(String[] record) { Map user = new HashMap(); // 아이디, 닉네임 저장 Map messages = new HashMap(); // 첫 단어, 아이디 저장 /..

[Lv.2] 영어 끝말잇기 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr #몇 번째 사람인지i=0부터 시작하고 사람 수 n일 때 => (i%n) + 1#몇 번째 차례인지i=0부터 시작하고 사람 수 n일 때 => (i/n) + 1 import java.util.*;class Solution { public int[] solution(int n, String[] words) { Map turn = new HashMap(); ArrayList wlist = new ArrayList(); wlist.add(words[0]); // 가장 먼저 탈락하는 사람의 번호, 그 사람이 ..

[Lv.2] 귤 고르기 : Java / HashMap 함수

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 종류 수를 최소화 > 개수 많은 크기부터 채우기 #예시k=4, [1, 3, 2, 5, 4, 5, 2, 3] 1.크기별 개수 구하기 > 해쉬맵 이용[1,1], [2,2], [3,2], [4,1], [5,2] 2.개수만 뽑아서 내림차순하기 : 크기 필요X2, 2, 2, 1, 1 3.k개 이상 채우기 #HashMap 관련 함수getOrDefault(key, defaultValue) : key가 있으면 해당 값 반환하고 없으면 기본값(defaultValue) 반환put(key, value) : 값 넣기 (덮어쓰기)get(key) : 값 가져오기containsKey(key)..

💚[Lv.2] 짝지어 제거하기 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 같은 알파벳이 2개 붙어있는 짝 찾기2. 1에서 찾은 짝 제거하기 > 앞뒤로 문자열 이어부팅기=> 문자열 모두 제거가능하면 1 리턴, 아니면 0 리턴 #예시baabaab aa baa > bb aa > aa > 모두 제거=> 1 리턴 cdcd => 0 리턴 포인트 : 직전 문자만 비교하면 됨 *StringBuilder에서 문자 제거하는 법sb.delete(start, end); // 범위 삭제sb.deleteCharAt(index); // 특정 위치 삭제 -정답 코드class Solution{ public int solution(String s) ..

[Lv.2] 다음 큰 숫자 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. n보다 큰 자연수2. n이랑 2진수의 1 개수가 같음=> 조건 1, 2를 만족하는 수 중 가장 작은 수 리턴 #정수 n의 2진수의 1의 개수 카운트해주는 함수Integer.bitCount(n) class Solution { public int solution(int n) { int answer = 0; // 2진수로 변환 String bnum = Integer.toBinaryString(n); // 2진수의 1의 개수 카운트 int o = countOne(bnum..

728x90