본문 바로가기

분류 전체보기182

2의 영역 문제 설명 정수 배열 arr가 주어집니다. 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 return 하는 solution 함수를 완성해 주세요. 단, arr에 2가 없는 경우 [-1]을 return 합니다. 제한사항 1 ≤ arr의 길이 ≤ 100,000 입출력 예 arr result [1, 2, 1, 4, 5, 2, 9] [2, 1, 4, 5, 2] [1, 2, 1] [2] [1, 1, 1] [-1] [1, 2, 1, 2, 1, 10, 2, 1] [2, 1, 2, 1, 10, 2] import java.util.*; class Solution { public int[] solution(int[] arr) { int pointer1 = -1; int pointer2 = -1; // 2의 위.. 2024. 4. 22.
세 개의 구분자 문제 설명 임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다. 예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다. 문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다. 제한사항 1 ≤ myStr의 길이 ≤ 1,000,000 입출력 예 myStr result "baconlettuceto.. 2024. 4. 22.
주사위 게임 3 문제 설명 1부터 6까지 숫자가 적힌 주사위가 네 개 있습니다. 네 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다. 네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다. 세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다. 주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다. 어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다. 네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻습.. 2024. 4. 22.
[묘공단] 스택 이야기 지금까지 묘공단 관련 포스팅을 velog에서 했었는데 이제 티스토리로 옮기고 싶어서 여기에 적는다. 자료구조하면 보통은 스택부터 이야기를 들을 것이다.매우 쉽고 기본이 되니까.스택은 ADT(Abstract Data Type)다.구현된 부분이 없는 일종의 인터페이스 같은 것이다.ADT의 구현은 자바에서 자바 콜렉션 프레임워크에 되어 있다. 근데 스택은 콜렉션에 없다.스택 클래스가 따로 있다.그리고 덱 ADT가 구현된 ArrayDeque을 스택처럼 쓸 수 있다(이건 큐처럼도 쓴다. 양방이 다 뚫려 있어서.). 이게 앞으로 나올 내용을 이해하기 위해 최소한으로 알고 있으면 될 내용이었다.1. 자바에서 스택을 쓸 경우는 뭐가 있을까? 후입선출(LIFO) 구조가 필요한 경우:웹 .. 2024. 4. 22.
내가 경험한 더닝 크루거 효과 코테 스터디를 마치고 나니 묘한 수치심과 진빠짐이 몰려 왔다. 난생 처음 겪는 기분. 너무나 부끄럽고 수치스럽고 정말 세상 앞에 벌거벗고 있는 기분이었다. 내 생각과 기분을 토해내는 나에게 누군가 '지식의 곡선'에 빠졌다고 말했다. 좀 러프하게 설명된 이미지이긴 한데 어차피 더닝 크루거 효과는 다들 알 테니까. 내 실제 역량이 저 지점에 있는지는 전혀 알 수가 없다만 난 전보다 훨씬 훨씬 개발(이든 CS든)을 잘 소화하게 됐음에도 불구하고 갈수록 스스로에 대해 부끄럽고 수치스럽게 느껴 그 기분을 주체를 못 할 정다. '나는 왜 전보다 개발을 훨씬 잘함에도 불구하고 취업이 안 되지?' '전에는 코테를 손도 못 댔는데 지금은 코테를 쳐 나가고 있는데 왜 칠수록 스스로가 부끄럽지?' 숱한 생각이 셀 수도 없이.. 2024. 4. 21.
문자열 묶기 문제 설명 문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ strArr의 길이 ≤ 100,000 1 ≤ strArr의 원소의 길이 ≤ 30 strArr의 원소들은 알파벳 소문자로 이루어진 문자열입니다. 입출력 예 strArr result ["a","bc","d","efg","hi"] 2 import java.util.HashMap; class Solution { public int solution(String[] strArr) { HashMap lengthCount = new HashMap(); int maxGroupSize = 0; for .. 2024. 4. 21.
7의 개수 문제 설명 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 100,000 입출력 예 array result [7, 77, 17] 4 [10, 29] 0 class Solution { public int solution(int[] array) { int count = 0; for(int i=0; i 2024. 4. 20.
2차원으로 만들기 문제 설명 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. num_list n result [1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]] 제한사항 num_list의 길이는 n의 배 수개입니다. 0 ≤ num_list의 길이 ≤ 150 2 ≤ n 2024. 4. 20.
1로 만들기 문제 설명 정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다. 10 / 2 = 5 (5 - 1) / 2 = 2 2 / 2 = 1 위와 같이 3번의 나누기 연산으로 1이 되었습니다. 정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return하도록 solution 함수를 완성해주세요. 제한사항 3 ≤ num_list의 길이 ≤ 15 1 ≤ num_list의 원소 ≤ 30 입출력 예 num_list result [12, 4, 15, 1, 14] 11 class Solution { int answer = 0; publ.. 2024. 4. 20.
특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 문제 설명 문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요. 제한사항 5 ≤ myString ≤ 20 1 ≤ pat ≤ 5 pat은 반드시 myString의 부분 문자열로 주어집니다. myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다. 입출력 예 myString pat result "AbCdEFG" "dE" "AbCdE" "AAAAaaaa" "a" "AAAAaaaa" class Solution { public String solution(String myString, String pat) { for(int i = myString.length() - 1.. 2024. 4. 20.
문자열이 몇 번 등장하는지 세기 문제 설명 문자열 myString과 pat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ myString ≤ 1000 1 ≤ pat ≤ 10 입출력 예 myString pat result "banana" "ana" 2 "aaaa" "aa" 3 import java.util.stream.IntStream; class Solution { public int solution(String myString, String pat) { return (int) IntStream.range(0, myString.length()-pat.length()+1) .filter(i -> myString.substring(i,i+pat.lengt.. 2024. 4. 20.
배열의 길이를 2의 거듭제곱으로 만들기 문제 설명 정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 1,000 1 ≤ arr의 원소 ≤ 1,000 입출력 예 arr result [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6, 0, 0] [58, 172, 746, 89] [58, 172, 746, 89] import java.util.ArrayList; import java.util.Arrays; class Solution { public int[] solution(int[] arr) { int[] answer;.. 2024. 4. 20.