JAVA_ 알고리즘 문제

장성욱·2025년 6월 21일

JAVA

목록 보기
15/23

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성

class Solution {
  public double solution(int[] arr) {
    double answer = 0;	// answer은 double 타입
    double s = 0;		// 배열의 합을 담는 변수 s는 double 타입
    for (int i = 0; i < arr.length; i ++) {
      s += arr[i];	// i번째 인덱스 배열의 값들을 s에 더함
    }
    answer = s / arr.length;	// 배열들의 합 / 배열의 길이 == 평균
    return answer;
  }
}

s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성


class Solution {
  boolean solution(String s) {
    boolean answer = true;

    String[] arr = s.split("");	
    // s.split("") => 문자열을 한 글자씩 나눠 문자열 배열을 만듦
    
    int cnt_p = 0;	// p의 개수를 담을 변수
    int cnt_y = 0;	// y의 개수를 담을 변수

    for (int i = 0; i < arr.length; i ++) {
      if (arr[i].equals ("p") || arr[i].equals ("P")) {
        cnt_p ++;
      }
    }
    // str[i].equals("S") => 문자열 비교할 때 꼭 사용
    // i번째 문자열이 p or P일 경우 cnt_p는 1씩 증가

    for (int i = 0; i < arr.length; i ++) {
      if (arr[i].equals ("y") || arr[i].equals ("Y")) {
        cnt_y ++;
      }
    }
     // i번째 문자열이 y or Y일 경우 cnt_y는 1씩 증가

    if (cnt_y == cnt_p) {	// 둘의 개수가 같다면 true
      return answer;
    }
    else if(cnt_y == 0 && cnt_p == 0) {	// 둘다 0이라면 true
      return answer;
    }
    else if (cnt_y != cnt_p) {	// 둘이 다르다면 false
      answer = false;
      return answer;
    }
    else { // 그외 모든 결과는 false
      answer = false;
      return answer;
    }
  }
}

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴


class Solution {
  public boolean solution(String s) {
    boolean answer = true;

    String[] str = s.split(""); 
    // 문자열을 한 글자씩 나눠 문자열 배열로 만듦

    if (str.length < 1 || str.length > 8) {
      answer = false;
      return answer;
    }
    // 문자열 길이가 1~8이 아니라면 false
      
    if (str.length != 4 && str.length != 6) {
      answer = false;
      return answer;
    }
    // 문자열 길이가 4나 6이 아니라면 false

    for (int i = 0; i < str.length; i ++) {
      char a = s.charAt(i);
      // 문자열에서 꺼낸 i번째 문자는 char a
      
      if (!Character.isDigit(a)) {
        answer = false;
        break;
        
        // i번째 문자가 숫자가 아니라면 false를 리턴하고 멈춤
      }
    }
    return answer;
    // 위 조건들을 통과했다면 true
  }
}

새로운 용어 정리

.equals

문자열 비교할 때 사용

str[i].equals("p");

i번째 문자가 p인지 비교

s.split("")

문자열을 한 글자씩 나눠 문자열 배열 (String [])로 만듦

String[] arr = s.split("");

Character.isDigit()

문자가 숫자 (0~9)인지 검사해주는 메서드

s.charAt(i)

문자열에서 i번째 문자를 꺼낼 때 사용

String s = "hello";
char c = s.charAt(1);
==> 'e' 출력
profile
https://frost-puck-b0f.notion.site/B-2610fdaef71d80c49d1bccdcb575dcb5

0개의 댓글