분류 전체보기(38)
-
[Programmers] Lv1 개인정보 수집 유효기간 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이 문제는 날짜를 계산하고 비교해야 된다. 여기서 모든 월은 28일이라고 하니 아래와 같이 하나의 값으로 대체할 수 있다. 값 = year12/28 + month*28 + day 이를 이용하면 날짜 덧셈과 비교가 간단해진다. 위를 알고 있으면 이 문제는 다음과 같이 간단하게 변환 된다. 날짜를 term 만큼 더한 후 오늘날짜와 비교하고 파기..
2023.02.03 -
[Programmers] Lv0 치킨 쿠폰 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이 문제는 재귀로 풀어보았다. 최대 서비스 치킨의 수는 다음과 같이 얻을 수 있다. 쿠폰의수가 있다면 쿠폰으로 산 치킨과 나머지 쿠폰으로 다음 쿠폰을 구할 수 있다. 다음 쿠폰을 10으로 나눈 몫을 구하면 치킨 수가 나온다. 치킨이 0이 될 때까지 반복하면 최대 서비스 수가 나온다. 아래 그림은 1081개를 시켰을때 위 과정 변화를 그린 것..
2023.02.02 -
[Programmers] Lv0 유한소수 판별하기 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120878 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 기약 분수를 얻을 려면 분모, 분자를 최대 공약수로 나누면 된다. 약수를 구하는 방법은 두 개의 수에서 가장 작은 수를 하나씩 빼면서 두 수에 대해 동시에 나누어 떨어지는지 확인하면 된다. 최대 공약수는 약수중 가장 큰 수 이므로 처음 얻는 약수를 반환하면 최대 공약수가 된다. 무한 소수를 구하는 방법은 문제에 나와있듯이 분모의 소인수가 2..
2023.02.02 -
[Programmers] Lv0 등수 매기기 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120882 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 정렬하는 것으로 해당 문제를 풀어보았다. 문제 풀이 과정은 다음 단계로 이루어진다. 1 : 평균값과 index를 가진 List를 평균에 대해 오름 차순으로 정렬을 한다. → 정렬을 했으므로 공동 등수를 생각하지 않는 등수가 만들어진다. → 1번은 ArrayList에 저장을 했고 내장함수를 이용해서 정렬을 하였다. → 평균이아니라 덧셈을 하더..
2023.02.02 -
[Programmers] Lv0 특이한 정렬 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120880 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 자바에는 배열을 비교할 때 Arrays.sort()를 이용하면 편하다 Arrays.sort에 주어지는 익명 객체 Comparator를 작성하면 Comparator 바탕으로 정렬이 된다. compare 메소드에서 비교 방식을 설정할 수 있다. Math.abs로 절댓값을 얻는 방식을 통하여 거리를 얻도록 했다. 거리가 같다면 큰 수를 앞으로 가..
2023.02.01 -
[Programmers] Lv0 저주의 숫자 3 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 10진법으로 n일 때 3x 마을에서 쓰는 숫자는 1에서부터 n번 다음 숫자를 찾아가면 된다. 저주받지 않은 다음의 숫자를 얻는 방법은 다음과 같다. 3으로 나누어 떨어지거나 3이 포함되어 있을 경우마다 계속 숫자를 증가시키면 된다. 나누어 떨어지는 것은 나머지 연산자를 사용하였고 3이 포함되어 있는 여부는 String의 내장함수인 conta..
2023.01.31 -
[Programmers] Lv0 다항식 더하기 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120863 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 다항식을 분리하는데 StringTokenizer을 사용하였다. StringTokenizer은 정규식을 사용하기 때문에 split보다 성능이 좋다고 한다. 또한 split은 배열을 만들지만 이 문제의 경우에는 한 번만 접근하면 되기 때문에 StringTokenizer을 이용하였다. 다항식 x + x + x 같은 경우처럼 x 가 많은 경우 문자..
2023.01.30 -
[Programmers] Lv0 최빈값 구하기 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 최빈값은 가장 자주 나오는 값이다. 또한 원소가 최대 1000 미만이므로 배열에 맵핑이 가능하다. 가장 큰 값 + 1 만큼 배열의 길이를 만들고 거기에 나오는 ㅊcount를 적었다. 그리고 얻은 countArray에 최댓값 즉 최빈값이 여러개 나온지 확인후 결과 값을 주게 하였다. 소스 코드 import java.util.Arrays; pu..
2023.01.29 -
[Programmers] Lv0 분수의 덧셈 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 분수의 덧셈을 할때 우리는 기본적으로 최대 공약수와 최대 공배수를 두 개 다 사용한다. 하지만 소스 코드에서는 최대 공약수만 사용한다. 기약 분수가 아닌 분수의 덧셈은 다음과 같다 분자 : numer1denom2 + numer2denom1 분모 : denom1*denom2 약수를 구하는 방법은 두개의 수에서 가장 작은 수를 하나씩 빼면서 두..
2023.01.28 -
[Programmers] Lv0 안전지대 Java
문제 출처 [프로그래머스 코딩 테스트 연습] https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 위 아래 왼쪽 오른쪽 대각선은 지뢰가 있는 좌표에 X,Y에 + 1, -1 을 각각 해주면 된다. 하지만 이때 배열에 접근할 때 언더 플로우, 오버 플로우가 발생할 수 있으므로 이에 대한 처리를 해주면된다. 각 지뢰가 있는 것을 1이라고 했을 때 경고하는 것은 0일때 2로 표현을 했다. 위험지역이 아닌 안전지역을 구하는 방법은 위험지역을 표시..
2023.01.27