본문 바로가기

Preparing Coding Test/Programmers L215

[Java/프로그래머스/해시] Level 2: 위장 문제 programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 참고 링크 2ssue.github.io/algorithm/programmers_42578/ [프로그래머스] 위장 JAVA 프로그래머스_위장 문제 풀이 코드 이 문제에서 필요한 것은 옷 종류의 개수가 몇 가지 있는지이다. 따라서 옷 종류의 이름은 쓸모없는 값이 된다. {옷 종류}:{총 개수} 와 같은 형태로 매칭되어 2ssue.github.io 코드 옷종류:총개수 로 이루어진 HashMap(key-value)을 구성한다. 이후 규칙을 찾아 공식화 하면 된다. 공식은 아래 주석에 import java.util.*; /* if 4종류의 옷과 그 옷이 {n, m,.. 2020. 12. 2.
[Java/프로그래머스/탐욕법] Level 2 : 구명 보트 문제 programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 처음 생각했던 방법(걍 틀림) 우선순위 큐에 넣어서 작은 것들부터 묶으려고 했다. 하지만 이 경우 people = {30, 40, 60, 70}, limit=100 일 때 (30,40) / 60 / 70 으로 3이 리턴된다. 옳은 답은 (70,30) / (60, 40) 으로 2가 리턴되어야 한다. 두번째로 생각한 방법 ( 효율성 테스트: 실패(.. 2020. 11. 10.
[Java/프로그래머스/탐욕법(Greedy)] Level 2: 조이 스틱 문제 programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 코드 조이스틱을 위 아래로 조작하는 것과 좌우로 조작하는 것을 나누어 생각했다. 상하는 쉽게 해결됐지만 좌우는 탐욕법으로 해결했다. 현재 위치(pos)에서 가장 가까운 바꿔야 할 자리를 찾는다. → 왼쪽으로 A 개수와 오른쪽으로의 A 개수를 비교한다. (만약 이동횟수가 같을 때, 오른쪽으로 이동해야 한다.) visited 배열 A가 있는 위치는 tru.. 2020. 11. 9.
[Java/프로그래머스/DFS] 타겟 넘버 문제 programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 코드 class Solution { static int answer; public void dfs(int index, int result, int[] numbers, int target){ if(index == numbers.length){ if(result==target) answer++; return; }else{.. 2020. 10. 19.
[Java/프로그래머스/힙(Heap)] 더 맵게 문제 programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같�� programmers.co.kr 코드 모든 원소가 K보다 커야 한다고 해서 for문으로 검사를 했었는데, 생각해보니 우선순위 큐라서 제일 앞의 원소만 K보다 큰지 확인해주면 됐었다. import java.util.PriorityQueue; class Solution { public int solution(int[] scoville, int K) { //int answer = 0; Pri.. 2020. 10. 16.
[Java/프로그래머스/브루트 포스] 소수 찾기 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/42839# 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 � programmers.co.kr 코드 checkPrime 함수 2부터 √n 까지 나누면서 체크한다. (√n 을 기준으로 나눠지는 수가 대칭되기 때문이다. 이해가 안된다면 아래 링크 참고) https://programmers.co.kr/questions/11572 소수가 맞아도 ans라는 전역 ArrayList에 같은 값이 있는지 확인한다. 중복을 피하기 위함이다. pe.. 2020. 8. 29.
[Java/프로그래머스/브루트 포스] 카펫 문제 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr 코드 전체 격자의 수 = yellow 개수 + brown 개수 yellow의 가로 길이 = 전체 가로 길이 - 2 (좌우가 brown으로 한줄씩 쌓여있기 때문) yellow의 세로 길이 = 전체 세로 길이 - 2 (위 아래가 brown으로 한줄씩 쌓여있기 때문) for문의 i 범위는 3~√all 3 : yellow는 상하좌우 brown으로 한 줄씩.. 2020. 8. 28.
[Java/프로그래머스] H-Index 문제 https://programmers.co.kr/learn/courses/30/lessons/42747# 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 코드 단순 이중 for문 이용 class Solution { public int solution(int[] citations) { int answer = 0; int paper_num = citations.length; for(int i=0; i=i) answer = i; } return answer; } } 정렬이 필요 .. 2020. 8. 23.
[Java/프로그래머스] 문자열 압축 문제 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 시행착오 중첩된 for문의 기준을 어떻게 두어야 할지 많이 헷갈렸다... 덧셈보다 곱셈으로 하는 것이 횟수가 깔끔하게 떨어질 것 같았음 코드 class Solution { public int solution(String s) { int answer = 1000; int s_len = s.length(); int grouping_len = s.lengt.. 2020. 8. 15.