본문 바로가기

코딩테스트 연습102

수열과 구간 쿼리 1 문제 설명 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 arr[i]에 1을 더합니다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ s ≤ e 2024. 4. 19.
빈 배열에 추가, 삭제하기 문제 설명 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ arr의 길이 = flag의 길이 ≤ 100 arr의 모든 원소는 1 이상 9 이하의 정수입니다. 현재 X의 길이보다 더 많은 원소를 빼는 입력은 주어지지 않습니다. 입출력 예 arr flag result [3, 2, 4, 1, 3] [true, false, true, false, fals.. 2024. 4. 19.
날짜 비교하기 문제 설명 정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다. 만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요. 제한사항 date1의 길이 = date2의 길이 = 3 0 ≤ year ≤ 10,000 1 ≤ month ≤ 12 day는 month에 따라 가능한 날짜로 주어집니다. 입출력 예 date1 date2 result [2021, 12, 28] [2021, 12, 29] 1 [1024, 10, 24] [1024, 10, 24] 0 import java.time.Loc.. 2024. 4. 19.
이차원 배열 대각선 순회하기 문제 설명 2차원 정수 배열 board와 정수 k가 주어집니다. i + j 2024. 4. 19.
중복된 문자 제거 문제 설명 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ my_string ≤ 110 my_string은 대문자, 소문자, 공백으로 구성되어 있습니다. 대문자와 소문자를 구분합니다. 공백(" ")도 하나의 문자로 구분합니다. 중복된 문자 중 가장 앞에 있는 문자를 남깁니다. 입출력 예 my_string result "people" "peol" "We are the world" "We arthwold" import java.util.Set; import java.util.LinkedHashSet; import java.util.stream.Collectors;.. 2024. 4. 19.
세로 읽기 문제 설명 문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요. 제한사항 my_string은 영소문자로 이루어져 있습니다. 1 ≤ m ≤ my_string의 길이 ≤ 1,000 m은 my_string 길이의 약수로만 주어집니다. 1 ≤ c ≤ m 입출력 예 my_string m c result "ihrhbakrfpndopljhygc" 4 2 "happy" "programmers" 1 1 "programmers" import java.util.stream.IntStream; import java.util.stream.Collectors;.. 2024. 4. 18.
369게임 문제 설명 머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ order ≤ 1,000,000 입출력 예 order result 3 1 29423 2 class Solution { public int solution(int order) { int answer = 0; String orderString = String.valueOf(order); for(int i=0; i 2024. 4. 18.
합성수 찾기 문제 설명 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 100 입출력 예 n result 10 5 15 8 import java.util.ArrayList; class Solution { public int solution(int n) { int answer = 0; // 합성수를 어떻게 찾나? // n 이하의 수를 순회해 보자. for(int i=2; i 2).count(); } } 깨끗하다. 나도 생각은 이렇게 했는데(생각한 로직이 위와 같은 거 같은데) 시작을 2부터 해서... (시작을 2부터 한 것도 말이 안 된다. 하려면 1부터 하든가 4부터 해야지 .. 2024. 4. 18.
피자 나눠 먹기 (2) 문제 설명 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ n ≤ 100 입출력 예 n result 6 1 10 5 4 2 import java.util.stream.IntStream; class Solution { public int solution(int n) { int answer = 0; answer = IntStream.rangeClosed(1, n*6) .filter(i -> i * 6 % n == 0) .findFirst() .getAsInt(); re.. 2024. 4. 18.
문자열 정렬하기 (2) 문제 설명 영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 제한사항 0 2024. 4. 18.
숫자 찾기 문제 설명 정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 제한사항 0 2024. 4. 18.
간단한 논리 연산 문제 설명 boolean 변수 x1, x2, x3, x4가 매개변수로 주어질 때, 다음의 식의 true/false를 return 하는 solution 함수를 작성해 주세요. (x1 ∨ x2) ∧ (x3 ∨ x4) 입출력 예 x1 x2 x3 x4 result false true true true true true false false false false class Solution { public boolean solution(boolean x1, boolean x2, boolean x3, boolean x4) { boolean answer = false; // 논리합 ∨, 논리곱 ∧ boolean a = !(x1 == false && x2 == false); boolean b = !(x3 == false.. 2024. 4. 18.