본문 바로가기

코딩테스트 연습/JAVA

(16)
[LeetCode/Java] Two Sum(두 수의 합) 풀이 🖥 사용 언어: Java 자바 Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. ⌨️ 나의 풀이 class Solution { public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; for (int i =..
[JAVA/알고리즘] 크레인 인형뽑기 게임 https://programmers.co.kr/learn/courses/30/lessons/64061?language=java 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr import java.util.*; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; ArrayList basket = new ArrayList(); for (int m : moves) { // m-1번 위치에서 인형 집기 for (int i = 0; i < boar..
[JAVA/알고리즘] 최댓값과 최솟값 https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr class Solution { public String solution(String s) { String[] numbers = s.split(" "); int min = Integer.parseInt(numbers[0]); int max = Integer.parseInt(numbers[0]); for (String n : numbers..
[JAVA/알고리즘] 최소직사각형 https://programmers.co.kr/learn/courses/30/lessons/86491?language=java 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 나의 풀이 한 명함의 가로와 세로 중 큰 값이 가로값이 되게 했다. 이후에 가로값과 세로값끼리 각각 비교해 최댓값을 구해주었다. 어차피 명함끼리는 값이 섞일 일이 없어서, 반복문은 한 번만 돌려도 상관없었다. class Solution { public int solution(int[][] sizes) { int maxWidth = 0; in..
[JAVA/알고리즘] 3진법 뒤집기 내 풀이 ArrayList로 뒤집은 3진법을 담았고, 다시 반복문을 통해서 10진법으로 만들어주었다. import java.util.*; class Solution { public int solution(int n) { int answer = 0; ArrayList ternery = new ArrayList(); while (n > 0) { ternery.add(n % 3); n /= 3; } for (int i = ternery.size()-1; i >= 0; --i) { answer += ternery.get(i) * Math.pow(3, ternery.size()-i-1); } return answer; } } 다른 풀이 반복문은 진법 관련해서 매번 보던 패턴이라 익숙했지만, StringBuilde..
[JAVA/알고리즘] 다트게임 - 내 풀이 문자열을 char 배열로 만든 후에 처리했다. 처음에 10이 있는 걸 간과하고 하나씩 봤는데 10 때문에 하나씩 보는게 어려웠다. 10인 경우만 따로 빼기엔 복잡해질 것 같아서 문자가 나올 때까지는 숫자에 더하게 했다(score 변수). 중간중간 자꾸 범위 초과 에러가 떴는데 나조차도 헷갈려서 향상된 for문을 사용했더니 오류가 사라졌다. 왜 그랬는지는 아직도 의문.. import java.util.*; class Solution { public int solution(String dartResult) { char[] dart = dartResult.toCharArray(); int[] scoreArr = new int[3]; int round = 0; String score = ""; fo..
[JAVA/알고리즘] 문자열 내림차순으로 배치하기 https://programmers.co.kr/learn/courses/30/lessons/12917 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 programmers.co.kr 문자열을 배열로 바꾼 다음에 정렬을 통해서 알파벳 순서대로 만들었다. 이후에 배열 순서대로 다시 문자열에 넣었다. 예전에는 아스키코드 생각하고 그랬는데, 그냥 크기 비교만 해도 되는 걸 너무 복잡하게 생각했던 것 같다. import java.util.*; class Solution { public String solution(Stri..
[JAVA/알고리즘] 이상한 문자 만들기 https://programmers.co.kr/learn/courses/30/lessons/12930?language=java 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 내 풀이 class Solution { public String solution(String s) { String answer = ""; boolean isOdd = false; // 홀수번째인가 for (int i = 0; i < s.length(); ++i) { char ch = s.charAt(i); if (ch == ..