반응형

java 81

프로그래머스 - 성격 유형 검사하기 :: 2022 KAKAO TECH INTERNSHIP :: 118666

문제 링크 프로그래머스 - 성격 유형 검사하기 문제 이해하기 성격 유형 종류는 총 8개로 고정이다. 지표 번호 성격 유형 1번 R, T 2번 C, F 3번 J, M 4번 A, N 점수는 총 7개로 분류된다. 매우 비동의, 비동의, 약간 비동의, 모르겠음, 약간 동의, 동의, 매우 동의 단, input 데이터에 따라 어느 곳에 점수를 부여해야 하는지 달라진다. 배열 survey에는 성격 유형 종류 8개 중 각 지표가 쌍으로 들어간다. 각 지표끼리만 입력 받을 수 있고 지표내의 성격 유형 순서는 바뀔 수 있다. R, F: 이런 지문은 존재하지 않는다. (R, T, T, R) 각 지문의 성격 유형 순서는 바뀔 수 있다. 배열 survey와 choices의 요소는 1vs1로 매칭되는 요소이다. 점수는 세 가지 ..

Algorithm/Java 2022.08.26

프로그래머스 - k진수에서 소수 개수 구하기 :: 2022 KAKAO BLIND RECRUITMENT

문제 코딩테스트 연습 - k진수에서 소수 개수 구하기 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 문제가 복잡해 보이지만 간단히 해결할 수 있는 문제입니다. 문제의 핵심은 0P0, 0P, P0 해당 규칙에 포함되며 소수인 개수를 구해야 합니다. 0P0, 0P, P0 의 규칙은 0으로 Split 하면 쉽게 구할 수 있습니다. 지문의 예처럼 211020101011 을 0으로 Split하면 [ "211", "2", "1", "1", "11" ] 을 구할 수 있습니다. 해당 배열들이 소수인지 아닌지만 판별하면 됩니다. 코드1 class Solution { public int solution(int n, int k) { String n_to_k = changeNotation(n, k); int ..

Algorithm/Java 2022.08.17

프로그래머스 - 줄 서는 방법 JAVA :: 12936

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12936?language=java 문제 이해하기 순서대로 완전 탐색을 할 수도 있겠지만 (물론 시도해 봤지만) 시간초과가 발생합니다. 그래서 패턴을 찾아보는 것으로 생각을 바꿨습니다. 경우의 수 우선 경우의 수 구하는 방법은 n! 입니다. $3! = 3*2*1 = 6$ $4! = 4*3*2*1 = 24$ 공식 유도 n=4에서 15번째 수를 구해보겠습니다. 15번째 수는 [3,2,1,4] 입니다. 그러나 배열은 0부터 시작이므로 k=14로 계산을 시작합니다. 첫 번째 수 구하기 두 번째 수 구하기 세 번째 수 구하기 네 번째 수는 4만 남았으므로 생략하겠습니다. 공식은 위와 같고 코드로 풀어..

Algorithm/Java 2022.08.13

프로그래머스 - 숫자의 표현 JAVA

12924 https://school.programmers.co.kr/learn/courses/30/lessons/12924?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 📌연속된 자연수를 더해 n을 만들 때 연속된 자연수의 시작은 자신을 제외하면 n/2 를 초과할 수 없습니다. 예를 들어 n=6일 경우 3을 초과한 숫자는 연속된 수의 처음에 올 수 없습니다. 4부터는 무엇을 더해도 6을 초과하기 때문이죠 🎈예시1) 6, 15 📝코드 public class Solution { public int solution(int n) ..

Algorithm/Java 2022.08.05

프로그래머스 - 주차 요금 계산 JAVA :: 2022 KAKAO BLIND RECRUITMENT

92341 코딩테스트 연습 - 주차 요금 계산 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 📌주차요금 계산식 주차 요금 = 기본 요금 + [(주차 누적시간 - 기본시간) / 단위 시간] * 단위 요금 📌주차 누적시간 모든 주차 시간을 분단위로 변환하면 계산하기 편합니다. 예를 들어 입차시간이 02:30 이면 (2*60) + 30 = 150 그리고 출차시간이 03:30 이면 (3*60) + 30 = 210 그러므로 주차 누적시간은 210(출차)-150(입차) = 60(분) 📌입차 후 출차기록이..

Algorithm/Java 2022.08.01

프로그래머스 - 최댓값과 최솟값 JAVA

12939 코딩테스트 연습 - 최댓값과 최솟값 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 각 숫자들은 문자열 내에서 공백으로 구분되어 있습니다. ex) "1 2 -3 4" 📌공백으로 구분된 숫자를 가져와야 합니다. 📌각 숫자를 비교해 최솟값, 최댓값을 찾아야 합니다. 📝코드1 class Solution { public String solution(String s) { String[] sArr = s.split(" "); int min = Integer.MAX_VALUE, max = Inte..

Algorithm/Java 2022.08.01

프로그래머스 - 최솟값 만들기 JAVA :: 12941

문제 링크 코딩테스트 연습 - 최솟값 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 문제 풀이 📌한 번 뽑은 요소는 또 뽑을 수 없다. 그러므로 문제에서 두 배열의 각 원소를 곱하여 가장 작은 수를 구하는 방법은 각 배열의 (가장 작은 수 x 가장 큰 수) 1번 풀이 import java.util.Arrays; public class Solution { public int solution(int[] A, int[] B) { Arrays.sort(A); Arrays.sort(B); int sum = 0; for(int i=0; i

Algorithm/Java 2022.08.01

프로그래머스 - 양궁대회 JAVA :: 2022 KAKAO BLIND RECRUITMENT :: 92342

문제 링크 코딩테스트 연습 - 양궁대회 | 프로그래머스 스쿨 (programmers.co.kr) 문제 이해하기 점수는 10~0점까지 11개의 점수가 있습니다. 남은 화살의 수가 어피치가 맞힌 화살의 수보다 크지 않으면 그 점수는 무시합니다. 라이언이 점수를 획득하는 조건은 무조건 어피치보다 많이 맞혀야 하니까요. 이제 예시와 함께 좀 더 자세히 살펴보겠습니다. 화살의 수는 총 5개이며 어피치는 10점(2개), 9점(1개), 8점(1개), 7점(1개) 입니다. 어피치의 화살 기본적으로 10점부터 시작해서 어피치의 점수를 빼앗는 조건 하에 점수차가 가장 많이 나는 조합을 찾는 방법으로 풀었습니다. 라이언의 화살 5발의 화살로 어피치의 점수를 빼앗는 첫 번재 방법은 10점에 3발, 9점에 2발을 쏴서 10점과..

Algorithm/Java 2022.07.27

프로그래머스 - N-Queen java :: 12952

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12952?language=java 문제 이해하기 🔥 퀸은 가로,세로,대각선으로 이동할 수 있습니다. 퀸 하나를 내려 놓았을 경우 빨간색(가로,세로,대각선)에는 다른 퀸을 놓을 수 없습니다. 🔥 그러므로 한 행에는 반드시 하나의 퀸만 올 수 있습니다. 🔥 행렬은 반드시 $(n * n)$ 행렬입니다. 이 핵심들은 당연하게 보이지만 중요한 이유는 한 행에는 반드시 하나의 퀸만 올 수 있고, 행과 열의 수가 같다면 2차원 배열로 풀지 않고 1차원 배열로도 풀 수 있습니다. 즉, 처리속도를 확 낮출 수 있다는 의미입니다. 🔥 대각선을 구하는 방법은 |기존 퀸의 행 - 배치할 퀸의 행| == |기존 ..

Algorithm/Java 2022.07.22

프로그래머스 - 행렬의 곱셈 java

코딩테스트 연습 - 행렬의 곱셈 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 핵심은 2개입니다. 📌새로 만들 배열의 크기를 정한다. 📌새로 만들 배열에 기존 배열(arr1, arr2)을 계산하여 삽입한다. 문제를 잘 보면 arr1에 arr2를 곱한 결과를 반환하는 것입니다. 우선 이차원 배열 곱하는 방법을 알아보면 arr1의 첫행 첫열의 값만 계산해 볼게요. 🔨[0] = \( [ (2*5)+(3*2)+(3*2), (2*4)+(3*4)+(2*1), (2*3)+(3*1)+(2*1) ] \) 입니..

Algorithm/Java 2022.07.15
반응형