본문 바로가기
728x90

코딩테스트/프로그래머스89

[JAVA] Summer/Winter Coding(~2018) 숫자 게임 https://programmers.co.kr/learn/courses/30/lessons/12987 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 programmers.co.kr 풀이) 1. 2개의 배열을 모두 정렬한다 2. 그리고 A와 B모두 뒤에서부터 비교하는데 A의 인덱스를 기준으로 한다 3. 이 때 현재 B의 값이 A의 값보다 큰 경우에만 B의 인덱스를 다음으로 넘겨준다. 아닌 경우에는 B가 이기지 못한 거니까 B의 인덱스는 냅두고 그 앞의 A의 값과 비교하는 것이다! 정렬이랑 뒤에서부터 비교하는 거까지는 생각했는데.. 2022. 2. 22.
[JAVA] Summer/Winter Coding(~2018) 기지국 설치 https://programmers.co.kr/learn/courses/30/lessons/12979 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 커뮤러닝 STEP 1-1 문제! 개판쳐서 다시 풀어보았따! 풀이) 원래 제일 유명한 풀이 보고 이해하려고 했는데 너무 이해가 안가서 그냥 이해가는 풀이로 다시 풀어봄! 일단 이미 설치된 기지국 기준으로 탐색하는 거임 설치된 기지국 기준으로 전파 범위 시작, 끝 잡고 현재 위치 1부터 반복하면서 접근함 만약 현재 위치(cur)가 전파 범위 시작.. 2022. 2. 21.
[정렬] Level 2 가장 큰 수 - JAVA 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 풀이) 1. 숫자 배열을 문자열로 바꿔서 배열에 저장.. 2022. 2. 20.
[이분탐색] Level 3 입국심사 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항 입국심사.. 2022. 2. 14.
[해시] Level 2 전화번호 목록 - JAVA https://yummy0102.tistory.com/193 [해시] Level 2 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입 yummy0102.tistory.com 오늘도 전에 푼 문제 다시 풀기~! 내일은 새로운 문제 풀어야지!! 알고리즘은 간단하다. 이 또한 해시를 사용하진 않고 문제의 꼼수를 약간 이용해줬다 전화번호 목록을 정렬하면 접두사가 같은 애들끼리 붙어 있을 수 밖에 없게 된다 그럼 정렬하고 앞과 뒤를 비교해주면서 앞의 문자열이 뒤의 시작과 같은 경우 접두사니까 answer는 false를 반환한다 Java에서도 마찬가지로 substrin.. 2022. 2. 12.
[해시] Level 1 완주하지 못한 선수 - JAVA https://yummy0102.tistory.com/186?category=966544 [해시] Level 1 완주하지 못한 선수 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완 yummy0102.tistory.com 이 문제를 이번엔 자바 코드로 풀어봤다~ 자바코드) import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { Arrays.sort(participant); Arrays.sort(completion); int i; .. 2022. 2. 11.
728x90