본문 바로가기

728x90

프로그래머스(Java)/Level 0

(93)
[프로그래머스] 다항식 더하기 코드 힌트문자열 분리:입력된 다항식을 공백(" ")을 기준으로 분리하여 각 항을 확인합니다. 이 과정에서 split(" ") 메소드를 사용합니다.항의 구분:각 항이 'x'를 포함하는지 여부를 확인합니다. 'x'가 포함된 항은 변수 항으로 취급하고, 나머지 항은 상수로 처리합니다.계수 처리:'x' 항이 단독으로 있는 경우 계수를 1로 설정합니다. 'x'와 숫자가 함께 있는 경우 해당 숫자를 계수에 추가합니다.결과 문자열 구성:변수 항과 상수 항의 값을 조합하여 최종 문자열을 만듭니다. 변수 항이 없거나 상수 항이 없는 경우 이를 적절히 처리합니다.특별한 경우 처리:모든 항이 0인 경우 "0"을 반환하고, 상수 항이 없거나 변수 항만 있는 경우 적절히 결과 문자열을 조정합니다.  정답은 더보기 클릭더보기cl..
[프로그래머스] 특이한 정렬 코드 힌트거리 계산:각 원소와 기준값 n의 거리(절대값 차이)를 계산합니다. 이 거리 정보를 기반으로 원소를 정렬할 것입니다.최소 거리 찾기:두 개의 반복문을 사용하여 현재 원소의 거리와 최소 거리를 비교하고, 가장 가까운 원소를 찾습니다. 같은 거리를 가진 원소 중에서는 값이 큰 원소를 우선시합니다.중복 방지:이미 선택된 원소를 다시 처리하지 않도록 거리 배열의 값을 -1로 설정하여 중복을 방지합니다.정렬 및 반환:최종적으로 거리 기준으로 정렬된 원소들을 결과 배열에 저장하여 반환합니다.  정답은 더보기 클릭더보기class Solution { public int[] solution(int[] numlist, int n) { // 결과를 저장할 배열 생성 int[] resu..
[프로그래머스] 유한소수 판별하기 코드 힌트기약 분수 만들기:먼저 주어진 두 수를 사용해 기약 분수로 만듭니다. 이 과정에서 분모를 최대공약수로 나누어 간소화합니다. 유한소수인지 판별하는 데 집중하기 때문에, 분모만 간소화하는 것이 핵심입니다.최대공약수 구하기:두 숫자의 최대공약수를 구해 기약 분수를 만드는 과정입니다. 최대공약수는 두 숫자를 계속해서 나누어 0이 될 때까지 재귀적으로 구할 수 있습니다. 이 과정에서 분모가 간단해집니다.유한소수 판별:분모를 소인수분해하여 2와 5 이외의 다른 소인수가 있는지 확인합니다.숫자를 반복적으로 나누어 2나 5 이외의 소인수가 존재하면 유한소수가 아니므로 false를 반환합니다.그렇지 않다면 true를 반환하여 유한소수임을 확인합니다.정답은 더보기 클릭더보기class Solution { pu..
[프로그래머스] 저주의 숫자 3 코드 힌트숫자 증가 및 조건 확인:특정 변수를 1씩 증가시키며, '3'이 포함되거나 3의 배수가 되는 순간을 찾아냅니다.이 과정은 주어진 매개변수 n이 0이 될 때까지 반복됩니다. 변수가 증가하는 동안, n은 원하는 횟수만큼 감소하게 됩니다.'3' 포함 여부 및 3의 배수 확인:숫자를 문자열로 변환한 후, '3'이 포함되어 있는지를 검사합니다. 이 조건을 만족하는지 확인하여 적절히 처리합니다.또한, 숫자가 3의 배수인지를 확인하는 조건을 사용합니다. 이 두 조건 중 하나라도 만족하면 반복문이 건너뛰어집니다.매개변수 감소:위의 조건을 만족하지 않을 때만 n이 1씩 감소됩니다. 이로 인해 특정 조건을 만족하는 숫자들을 건너뛰게 됩니다.결과적으로 n이 0이 될 때까지 반복하여, 최종 결과를 반환합니다.정답은 ..
[프로그래머스] 등수 매기기 코드 힌트평균 점수 계산:각 학생의 평균 점수를 계산하려면, 학생의 각 과목 점수를 합산한 후, 과목 수로 나누어 평균을 구합니다.이를 위해 2중 for 루프를 사용하여 각 학생의 점수를 순회하고 평균을 계산합니다.평균 점수를 정렬하여 순위 매기기:평균 점수를 저장한 배열을 List로 변환하여 정렬합니다.Collections.sort와 Collections.reverseOrder를 사용하여 내림차순으로 정렬합니다.순위 부여:정렬된 리스트에서 각 평균 점수의 인덱스를 찾고, 이 인덱스에 1을 더하여 순위를 매깁니다.List.indexOf 메소드를 사용하여 평균 점수의 위치를 찾아 순위를 계산합니다. 정답은 더보기 클릭더보기import java.util.*;class Solution { public i..
[프로그래머스] 로그인 성공? 코드 힌트HashMap 사용하기:HashMap을 사용하지 않고, for 루프를 사용하여 사용자 정보를 직접 검색할 수도 있습니다.HashMap을 사용하면 사용자 정보를 효율적으로 저장하고 검색할 수 있습니다.HashMap을 사용하여 사용자 ID를 키로, 비밀번호를 값으로 저장합니다.데이터베이스 배열 순회:db 배열을 순회하면서 사용자 ID와 비밀번호를 HashMap에 추가합니다.각 사용자의 ID를 키로, 비밀번호를 값으로 저장하여 나중에 쉽게 검색할 수 있습니다.비밀번호 확인:id_pw[0] (사용자 ID)를 키로 HashMap에서 비밀번호를 검색합니다.비밀번호가 존재하지 않으면 "fail"을 반환합니다.비밀번호가 다르면 "wrong pw"를 반환합니다.비밀번호가 맞으면 "login"을 반환합니다.  정..
[프로그래머스] OX퀴즈 코드 힌트문제 구문 분리:각 문제 문자열을 공백(" ")을 기준으로 분리하여 피연산자, 연산자, 예상 결과를 추출합니다.예를 들어, "3 + 4 = 7"을 "3", "+", "4", "7"로 분리합니다.연산자에 따른 연산 수행:연산자를 확인하고, 적절한 산술 연산(덧셈 또는 뺄셈)을 수행하여 결과를 계산합니다."+" 연산자는 덧셈을 수행하고, "-" 연산자는 뺄셈을 수행합니다.결과 비교 및 저장:계산한 결과가 예상 결과와 일치하는지 비교합니다.결과가 일치하면 "O"를, 그렇지 않으면 "X"를 결과 배열에 저장합니다.결과 배열 반환:최종적으로 각 문제에 대한 결과를 포함하는 배열을 반환합니다. 정답은 더보기 클릭더보기class Solution { public String[] solution(Strin..
[프로그래머스] 외계어 사전 코드 힌트spell 배열의 문자 조합:spell 배열을 일일이 조합해도 좋지만, 사실 중요한 것은 spell 배열에 있는 각 알파벳의 개수입니다.이를 위해 new int[26] 배열을 사용하여 알파벳의 개수를 세고, 이를 기반으로 다른 단어와 비교할 수 있습니다.dic 배열의 각 단어에서 알파벳 개수 카운트:spell에서 사용한 것과 동일한 방식으로, dic 배열의 각 단어에서도 알파벳의 개수를 카운트합니다.주의할 점은 각 단어를 비교할 때마다, 카운트 배열을 초기화해야 한다는 것입니다. 그렇지 않으면 이전 단어의 알파벳 개수가 남아 있을 수 있습니다.배열 비교하기:두 배열의 알파벳 개수를 비교할 때, 직접 for 문을 작성할 수도 있지만, Java에서 제공하는 Arrays.equals() 메소드를 사용..

728x90