프로그래머스
-
프로그래머스 (Level 2) - 기능개발Coding Test/Coding Test 문제 풀이 2021. 12. 28. 12:01
문제 설명 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 풀이 문제를 해결하기 위해서 다음과 같이 두 단계로 나누었다. 1. 각 기능이 완료되기까지의 남은 일수를 구한다. 2. 계산한 남은 일수를 통해 배포마다 몇 개의 기능이 배포되는지를 구한다. 첫 번째 단계는 각 기능의 작업 진도와 100과의 차이를 구한 후, 각 기능의 작업 속도로 나머지 연산을 함으로써 쉽게 구할 수 있었다. 두 번째 단계는 List 자료구조를 활용하였으며, 가장 앞에 있는 기능의 남을 일수를 current 변수로 저장하고 배..
-
프래그래머스 (Level 2) - 전화번호 목록Coding Test/Coding Test 문제 풀이 2021. 12. 28. 11:00
문제 설명 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 풀이 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하는 문제이다. 처음에는 이중 반복문을 통해 전화번호부 내 모든 번호들을 startsWith() 함수를 이용해서 비교하는 방식으로 해결하려고 했었다. 하지만, 시간 효율성을 측정하는 문제여서 이 방법은 적절하지 않다고 생각했다. 전화번호를 비교하기 위해서는 빠른 검색에 유용한 자료구조가 필요했고, HashSet 자료구조를 사용했다. 우선, 전화번호부(phone_..
-
프로그래머스 (Leve 1) - 내적Coding Test/Coding Test 문제 풀이 2021. 12. 26. 15:11
문제 설명 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 풀이 a와 b배열 내 원소를 하나씩 탐색하고, 곱한 후 더해주는 방식으로 문제를 해결하였다. 전체 소스코드 import java.io.*; import java.util.*; public class Solution04 { public int solution(int[] a, int[] b) { int answer = 0; for (int i = 0; i < a.lengt..
-
프로그래머스 (Level 1) - 없는 숫자 더하기Coding Test/Coding Test 문제 풀이 2021. 12. 26. 14:48
문제 설명 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 풀이 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers에서 찾을 수 없는 숫자를 모두 더한 수를 계산하는 문제이다. 우선, false로 초기화된 불리언 배열 checked를 선언한다. numbers 배열을 하나씩 탐색하면서 checked 배열 내 원소를 true로 변경한다. numbers 배열의 탐색이 끝났으면, checked 배열 내 원소가 false인 인덱스를 모두 더해주는 방식으로 해결을..
-
프로그래머스 (Level 1) - 음양 더하기Coding Test/Coding Test 문제 풀이 2021. 12. 26. 14:37
문제 설명 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 풀이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어진다. 주어진 정보를 가지고 실제 정수들의 합을 구하는 문제이다. 반복문을 통해서 배열 내 절댓값 정수를 하나씩 탐색한다. 만약, signs의 원소가 false 인 경우 해당 절댓값에 -1 부호를 붙여 더해주는 방식으로 문제를 해결했다. 전체 소스코드 import java.io.*; imp..
-
프로그래머스 (Level 1) - 로또의 최고 순위와 최저 순위Coding Test/Coding Test 문제 풀이 2021. 12. 26. 00:29
문제 설명 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이 최저 순위를 구하기 위해, 이중 반복문을 통해서 당첨 번호와 일치하는 번호의 수를 카운트했다. 동시에 최대 순위를 구하기 위해 0인 숫자들을 카운트했다. 위에 항목들을 모두 구하면 아래와 같이 계산이 가능하다. 1. 당첨 번호와 일치하는 번호의 수 + 0인 숫자 = 최대로 일치할 수 있는 번호의 수 2. 당첨 번호와 일치하는 번호의 수 = 최소로 일치할 수 있는 번호의 수 위의 계산식을 바탕으로 최대..