programmers Day16

Hwani·2024년 5월 21일

프로그래머스 DAY 1~25

목록 보기
16/51

문제 - 편지

풀이

class Solution {
    public int solution(String message) {
        int MessageCount = message.length();
        return MessageCount * 2;
    }
}

문제 - 가장 큰 수 찾기

풀이

import java.util.*;

class Solution {
    public int[] solution(int[] array) {
        // 최대 값을 저장할 변수
        int maxValue = Integer.MIN_VALUE;

        // 최대 값의 인덱스를 저장할 변수
        int maxIndex = -1;

        // 배열을 순회하면서 최대 값과 인덱스를 찾음
        for (int i = 0; i < array.length; i++) {
            if (array[i] > maxValue) {
                maxValue = array[i];
                maxIndex = i;
            }
        }

        // 결과를 저장할 배열
        int[] result = {maxValue, maxIndex};
        return result;
    }
}

다른 풀이

public int[] solution2_1 (int[] array) {
	int[] answer = new int[2];

     for(int i=0;i<array.length;i++) {
        if(array[i] > answer[0]) {
             answer[0] = array[i];
             answer[1] = i;
        }
     }

        return answer;
    }

설명

  • 리턴하는 값은 2개 고정이기 때문에 배열을 생성한다.
  • 배열의 첫번째 값은 배열의 값을 두번째 값은 인덱스 번호인 i 값을 넣는다.

문제 - 문자열 계산하기

풀이

class Solution {
    public int solution(String my_string) {
        String[] split = my_string.split(" ");

        int result = Integer.parseInt(split[0]);

        for (int i = 1; i < split.length; i += 2) {
            String operator = split[i];
            int nextNumber = Integer.parseInt(split[i + 1]);

            if (operator.equals("+")) {
                result += nextNumber;
            } else {
                result -= nextNumber;
            }
        }

        System.out.println("result = " + result);
        return result;
    }
}

설명

  • result 변수에는 배열 split의 첫 번째 요소를 정수로 변환한 값이 저장한다. 이 값은 수식의 첫 번째 숫자에 해당한다.
  • 루프는 1부터 시작하여 배열 split의 길이까지 2씩 증가하면서 실행, 인덱스가 홀수인 요소는 연산자고, 다음 요소는 해당 연산자의 오른쪽에 있는 숫자다.
  • 연산에 따라 result에 결과값을 저장 후 리턴한다.

문제 - 배열의 유사도

풀이

import java.util.*;

class Solution {
    public int solution(String[] s1, String[] s2) {
        List<String> word = new ArrayList<>();

        for (String str1 : s1) {
            for (String str2 : s2) {
                if (str1.equals(str2)) {
                    word.add(str1);
                }
            }
        }

        System.out.println("word = " + word);
        return word.size();
    }
}

설명

  • 동일한 문자를 담아줄 ArrayList 생성
  • s1은 str1, s2는 str2을 대입하고 str1,str2를 비교해서 동일한 값이면 word에 저장
  • 원소의 갯수를 리턴해야하니까 word.size()를 리턴
profile
개발자될거야

0개의 댓글