본문 바로가기

728x90

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

(93)
[프로그래머스] 간단한 논리 연산 코드 힌트논리 연산자 or (∨) 및 and (∧)의 의미 이해하기:OR (||): 두 값 중 하나라도 true이면 결과가 true입니다.예: false || true는 true입니다.예: true || false는 true입니다.예: true || true는 true입니다.예: false || false는 false입니다.AND (&&): 두 값 모두 true여야 결과가 true입니다.예: false && true는 false입니다.예: true && false는 false입니다.예: true && true는 true입니다.예: false && false는 false입니다.논리 연산자의 역할:OR (∨): 여러 조건 중 하나라도 true인 경우 전체 결과를 true로 만듭니다.AND (∧): 모든 조건..
[프로그래머스] 타겟넘버 코드 힌트2중 for문 사용하기:2차원 배열을 순회하려면 i와 j 두 개의 인덱스를 사용하여 배열의 모든 요소를 탐색합니다.i는 행 인덱스를, j는 열 인덱스를 나타냅니다.인덱스 합 조건 확인:배열의 각 요소에 대해 i + j의 합이 주어진 값 k 이하인지를 확인합니다.조건을 만족할 때만 해당 요소의 값을 result에 더해줍니다.변동 길이 배열 처리:배열 board의 각 행은 서로 다른 길이를 가질 수 있으므로, 내부 for문에서 열의 길이를 board[i].length로 동적으로 설정합니다.이를 통해 배열의 크기에 상관없이 올바르게 요소를 탐색할 수 있습니다.결과 반환:모든 조건을 만족하는 요소들의 합을 계산한 후, 최종 결과를 반환합니다. 정답은 더보기 클릭더보기class Solution { ..
[프로그래머스] 배열 만들기 4 코드 힌트Stack 사용하기: 문제를 해결할 때 스택(Stack) 자료구조를 사용하면 더 간단하게 구현할 수 있습니다. 스택은 LIFO(Last In First Out) 구조로, 마지막에 추가된 원소가 가장 먼저 꺼내집니다.문제 조건 잘 이해하기: stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다. 라는 조건이 있습니다. 해당 조건을 만족한다면 i++를 하라는 조건이 없습니다. 즉 계속해서 해당 arr[i]에 대해 조건이 맞다면 반복하라는 의미입니다.  정답은 더보기 클릭더보기import java.util.*;class Solution { public int[] solution(int[] arr) { // 결과를 저..
[프로그래머스] 문자열 계산하기 문제 힌트split 사용하기주어진 문자열을 공백(" ")을 기준으로 나누어 배열에 저장합니다.예: "5 + 7 + 2 - 1 - 5" → ["5", "+", "7", "+", "2", "-", "1", "-", "5"]i % 2 == 0 일 때 피연산자 처리배열의 인덱스가 짝수인 경우, 피연산자를 의미합니다.이때, 연산자에 따라 피연산자 값을 누적합니다.예: "5 + 7 + 2 - 1 - 5"에서 5, 7, 2, 1, 5가 피연산자입니다.i % 2 != 0 일 때 연산자 처리배열의 인덱스가 홀수인 경우, 연산자를 의미합니다."+" 연산자는 다음 피연산자를 더하고, "-" 연산자는 다음 피연산자를 빼도록 설정합니다.예: "5 + 7 + 2 - 1 - 5"에서 +, +, -, -가 연산자입니다. 정답은 더보..
[프로그래머스] 최빈값 구하기 코드 힌트HashMap 사용하기HashMap은 키-값 쌍으로 데이터를 저장하는 자료구조입니다. 각 키는 유일해야 하며, 값을 저장할 수 있습니다. 빠른 조회가 가능하여 데이터 접근 속도가 빠릅니다.getOrDefault로 카운트하기getOrDefault를 사용하여, 해당 키가 없을 경우 기본값으로 0을 설정합니다.map.getOrDefault(n, 0)은 n의 값이 없을 때 0을 반환합니다.map.keySet() 사용하기map.keySet()은 HashMap의 모든 키를 반환하는 메서드입니다.이 키들을 리스트로 변환하여 사용할 수 있습니다.keySet.sort()하기keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1))) 사용값의 크기를 기준으로 내림차순..
[프로그래머스] 합성수 찾기 코드 힌트4부터 n까지의 숫자에 대해 반복문을 실행합니다.4부터 시작하는 이유: 1은 약수가 없고, 2와 3은 약수가 2개뿐이기 때문에 합성수 조건에 맞지 않습니다.만약 n이 1부터 3 사이의 값이라면, 자연스럽게 반복문이 실행되지 않아 0을 반환하게 됩니다.각 숫자 i에 대해 2부터 i-1까지의 숫자로 나누어 나머지가 0인 경우를 찾습니다.1과 i는 이미 해당 수의 약수이므로 확인할 필요가 없습니다. 정답은 더보기 클릭더보기class Solution { public int solution(int n) { int result = 0; // 합성수의 개수를 저장할 변수 초기화 // 4부터 n까지의 숫자에 대해 반복문을 실행합니다. for (int i..
[프로그래머스] 외계행성의 나이 코드힌트숫자 0-9를 알파벳 a-j로 매핑하는 문제입니다.숫자 0은 알파벳 a, 숫자 1은 알파벳 b, ..., 숫자 9는 알파벳 j로 변환됩니다.알파벳 문자열을 변수로 만들어 사용합니다."abcdefghij" 문자열을 생성하여 각 자리 숫자를 해당 알파벳으로 변환합니다.나이의 각 자리 숫자를 추출하여 charAt() 메소드를 사용해 알파벳으로 매핑합니다. 정답은 더보기 클릭더보기class Solution { public String solution(int age) { // 숫자 0-9를 알파벳 a-j로 변환하기 위한 문자열 정의 String alpha = "abcdefghij"; // 변환된 결과를 저장할 StringBuilder 객체 생성 ..
[프로그래머스] 9로 나눈 나머지 코드 힌트문자열로 저장된 숫자의 각 자리수의 합을 구하고 % 9를 구하는 문제입니다.주어진 숫자를 문자열로 받아 각 자리 숫자의 합을 구하고, 그 합을 9로 나눈 나머지를 반환합니다.각 자리수를 구하기 위해서는 for문을 돌아 charAt()으로 하나씩 추출하거나 forEach를 활용하여 toCharArray()를 사용하여 문자를 추출합니다.문자열의 각 문자를 순회하면서 해당 문자를 숫자로 변환하여 합산합니다.이를 위해 toCharArray() 메서드를 사용하여 문자열을 문자 배열로 변환하고, for-each 루프를 사용합니다.char타입으로 출력된 문자를 그대로 숫자로 저장하기 위해서는 char - '0'을 사용하는 것이 좋습니다.'0'을 빼는 이유: char 타입은 아스키 코드값으로 저장됩니다. 예를..

728x90