programmers Day21

Hwani·2024년 5월 28일

프로그래머스 DAY 1~25

목록 보기
21/51
post-thumbnail

문제 - 숨어있는 숫자의 덧셈 (2)

풀이

class Solution {
    public int solution(String my_string) {
        int answer = 0;

        String[] str = my_string.replaceAll("[a-zA-Z]", " ").split(" ");
        
        for (String s : str) {
            if (!s.equals("")) {
                answer += Integer.parseInt(s);
            }
        }
        return answer;
    }
}

설명

문제의 조건 중 소문자, 대문자, 자연수로만 구성되어있다.

  • 영어 소문자와 대문자를 공백으로 대체한다.
  • 배열에서 공백을 제외한 숫자를 answer에 더한 후 저장한다.

문제 - 안전지대


풀이

import java.util.*;

class Solution {
    public int solution(int[][] board) {
        ArrayList<int[]> list = new ArrayList<>();
        int answer = 0;
        int[] dx = {0,1,-1,0,-1,1,1,-1};
        int[] dy = {1,0,0,-1,-1,1,-1,1};
        
        for(int i = 0; i < board.length; i++){
            for(int j = 0; j < board[0].length; j++){
                if(board[i][j] == 1){
                    int[] temp = {i,j};
                    list.add(temp);
                } 
            }
        }
        
        for(int a = 0 ; a < list.size(); a++){
            int i = list.get(a)[0];
            int j = list.get(a)[1];
            for(int k = 0 ; k < 8; k++){
                        if(dx[k] + i >= 0 && dy[k] + j >= 0 && dx[k] + i <= board.length-1 && dy[k] + j <= board.length-1)
                            board[dx[k] + i][dy[k] + j] = 1;
            }
        }
        
        for(int i = 0; i < board.length; i++){
            for(int j = 0; j < board[0].length; j++){
                if(board[i][j] == 0) answer+=1;
            }
        }
        return answer;
    }
}

설명

문제 - 삼각형의 완성조건 (2)

풀이

import java.util.*;

class Solution {
    public int solution(int[] sides) {
        int answer = 0;
	    
        // 오름차순 정렬 
        Arrays.sort(sides);
        int max = sides[1]; 
        int min = sides[0]; 
        
        int low_range = max - min; 
        int high_range = max + min; 
        
        answer = high_range - low_range - 1;
        
        return answer;
    }
}

설명

문제 - 외계어 사전

풀이

class Solution {
    public int solution(String[] spell, String[] dic) {
        boolean wordCheck = false;
        for (String word : dic) {
            int count = 0;
            for (String s : spell) {
                if (word.contains(s)) count++;
            }
            if (count == spell.length) {
                wordCheck = true;
                break;
            }
        }
        return wordCheck ? 1 : 2;
    }
}

설명

profile
개발자될거야

0개의 댓글