프로그래밍
-
[프로그래머스] 최솟값 만들기프로그래밍/코딩 테스트 2024. 9. 4. 19:43
문제. 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다.배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 * A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5)* A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 : 5 + 16(4x4) = 21..
-
[프로그래머스] 올바른 괄호프로그래밍/코딩 테스트 2024. 9. 3. 19:25
문제. 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어* "()()" 또는 "(())()" 는 올바른 괄호입니다.* ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.제한 사항.* 문자열 s의 길이 : 100,000 이하의 자연수* 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 나의 접근.여는 괄호일경우 +1, 닫는 괄호일 경우 -1 를 반복한다. 반복문이 음수가 되거나 반복의 결과가 0이 아니면 fal..
-
[프로그래머스] 최댓값과 최솟값프로그래밍/코딩 테스트 2024. 9. 2. 20:08
문제. 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한 사항.* s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 나의 접근.1. 우선 배열에 숫자를 담는다.2. 배열을 오름차순하여, 최솟값과 최댓값을 구한다. import java.util.Arrays;class Solution { public String solution(String s) { String answer = ""; int [] a..
-
[JAVA] Arrays.sort 정렬프로그래밍/JAVA 2024. 8. 30. 22:59
자바에서 배열을 오름/내림차순 정렬하기 위한 알고리즘을 메소드로 제공한다. https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Arrays.html Arrays (Java SE 11 & JDK 11 )Compares two int arrays lexicographically over the specified ranges. If the two arrays, over the specified ranges, share a common prefix then the lexicographic comparison is the result of comparing two elements, as if by Integer.compare(int, in..
-
[프로그래머스] 문자열 내 마음대로 정렬하기프로그래밍/코딩 테스트 2024. 8. 30. 22:13
문제.문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 사항.* strings는 길이 1 이상, 50이하인 배열입니다. * strings의 원소는 소문자 알파벳으로 이루어져 있습니다. * strings의 원소는 길이 1 이상, 100이하인 문자열입니다. * 모든 strings의 원소의 길이는 n보다 큽니다. * 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 나의 접근.주어진 문자열에서 n번째 글자를 가..
-
[프로그래머스] 숫자 문자열과 영단어프로그래밍/코딩 테스트 2024. 8. 29. 20:43
문제. 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.* 1478 → "one4seveneight"* 234567 → "23four5six7" * 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.제한 사항.* 1 ≤ s의 길이 ≤ 50 * s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.* return 값이 1 이상 2,..
-
[프로그래머스] 두 개 뽑아서 더하기프로그래밍/코딩 테스트 2024. 8. 29. 19:50
문제.정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항.* numbers의 길이는 2 이상 100 이하입니다. * numbers의 모든 수는 0 이상 100 이하입니다. 나의 접근.1. 모든 경우에 대해 합을 구한다.2. TreeSet를 활용하여, 중복제거와 오름차순으로 정렬한다.3. TreeSet를 int 배열로 가공하여 리턴한다. import java.util.Arrays;import java.util.TreeSet;class Solution { public int[] solution(int[] numbers) { ..
-
[Java] int[] to Integer[], Integer[] to int[]프로그래밍/JAVA 2024. 8. 29. 19:01
간단하게 int 배열을 Integer 배열로, Integer 배열을 int 배열 변환하는 방법을 알아보자. 1) int 배열에서 Integer 배열로의 변환int[] numArr1 = {1, 2, 3, 4, 5};Integer[] numAyy2 = Arrays.stream(numArr1).boxed().toArray(Integer[]::new); 2) Integer 배열에서 int 배열로의 변환Integer[] numArr2 = {1, 2, 3, 4, 5};int[] numArr1 = Arrays.stream(numArr2).mapToInt(i->i).toArray(); 참고 링크.https://stackoverflow.com/questions/31394715/how-to-convert-intege..