자료구조와 알고리즘/프로그래머스 문제풀이
-
level 2 - N개의 최소공배수자료구조와 알고리즘/프로그래머스 문제풀이 2023. 2. 22. 12:48
최소 공배수와 최대 공약수를 구할 수 있다면 쉽게 풀 수 있다. 최소공배수(LCM, Least Common Multiple)는 최대공약수(GCD, Greatest Common Divisor)를 이용해서 구할 수 있다. public int LCM(int x, int y) { return x * y / GCD(x, y); } 최대공약수는 유클리드 호제법을 통한 재귀용법으로 구현할 수 있다. public int GCD(int x, int y) { if (y == 0) { return x; } return GCD(y, x % y); } 배열에 주어진 수들의 최소 공배수는 배열에 있는 모든 수를 곱하고 공통의 최대공약수를 나누면 된다. 예를 들어 {2, 4, 6, 8}의 공통 최대공약수는 직관적으로 2라는 것을 ..
-
level 1 - 문자열 다루기 기본자료구조와 알고리즘/프로그래머스 문제풀이 2020. 7. 20. 18:35
코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이�� programmers.co.kr [문제 설명] 문자열의 길이가 4 또는 6이면서, 숫자로만 구성되어 있는지를 확인하는 함수를 작성하라. [제한 사항] s는 길이 1 이상, 길이 8 이하이다. [고민] - 문자형 '0'과 '9'를 상수로 변경하는 것이 더 나은 결정인가? Class Solution { private final char ZERO = '0'; private final char NINE = '9'; public boolean so..
-
level1 - 문자열 내 마음대로 정렬하기자료구조와 알고리즘/프로그래머스 문제풀이 2020. 7. 16. 15:03
문제에 대한 설명은 아래 링크에서 볼 수 있다. 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1� programmers.co.kr [기본 설명] 문자열로 구성된 배열을 각 문자열의 특정 인덱스를 기준으로 오름차순 정렬을 구현하는 문제이다. (단, 두 문자열의 인덱스가 같을 경우 사전 순으로 정렬) [개선 사항] 1. 파라미터인 strings를 Arrays.sort() 메소드를 이용해 정렬하고 정렬된 파라미터를 반환하는 것으로 구현 => 파라미터를 정렬한다면 String 배열을 반..
-
level 1 - 체육복자료구조와 알고리즘/프로그래머스 문제풀이 2020. 7. 15. 12:59
programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번� programmers.co.kr import java.util.Arrays; class Solution { public int solution(int n, int[] lost, int[] reserve) { int[] cloths = new int[n]; for (int lostNum : lost) { cloths[lostNum - 1]--; } for (int reserveNum : reserve) { c..
-
level 1 - 완주하지 못한 선수자료구조와 알고리즘/프로그래머스 문제풀이 2020. 7. 10. 18:42
마라톤 참가자 배열과 완주자 배열이 주어질 때 완주하지 못한 한 사람을 찾아 이름을 반환하는 문제이다. [풀이 과정] 1. 주어진 배열의 이름 순서가 정렬되어 있지 않아서 정렬을 한다. 2. 참가자, 완주자 배열을 순서대로 비교하여 일치하지 않는 경우 참가자의 이름을 반환한다. public class 완주하지_못한_선수 { public String solutoin(String[] participant, String[] completion) { Arrays.sort(participant); Arrays.sort(completion); for (int i = 0 ; i < completion.length ; i++ ) { if (!completion[i].equals(participant[i])) retur..