게임 맵 최단거리: 깊이/너비 우선 탐색(DFS/BFS) Lv.2

 

https://school.programmers.co.kr/learn/courses/30/lessons/1844

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

import java.util.LinkedList;
import java.util.Queue;

class Solution {
    public int solution(int[][] maps) {
        int[][] visit = new int[maps.length][maps[0].length];
        
		Queue<GameMapLoc> q = new LinkedList<>();
		q.add(new GameMapLoc(0,0,0));
		
		while(q.size() > 0) {
			int x = q.peek().x;
			int y = q.peek().y;
			int answer = q.poll().moveCnt;
			
			if(x == maps.length-1 && y == maps[0].length-1) {
				return answer + 1;
			}
			
			int[] xx = {-1, 0, 1, 0};
			int[] yy = {0, -1, 0, 1};
			
			for(int i=0;i<4;i++) {
				int ax = x+xx[i];
				int ay = y+yy[i];
				
				if(ax>=0 && ay>=0 && ax<maps.length && ay<maps[0].length) {
					if(maps[ax][ay] == 1 && visit[ax][ay] == 0) {
                        visit[ax][ay] = 1;
						q.add(new GameMapLoc(ax, ay, answer+1));
					}					
				}
			}
		}
        
        return -1;
    }
}

class GameMapLoc{
	int x;
	int y;
	int moveCnt;
	
	public GameMapLoc(int x, int y, int moveCnt) {
		// TODO Auto-generated constructor stub
		this.x = x;
		this.y = y;
		this.moveCnt = moveCnt;
	}
}

 

반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

완주하지 못한 선수  (0) 2024.04.06
둘만의 암호  (0) 2024.04.06
JadenCase 문자열 만들기  (0) 2024.04.06
최댓값과 최솟값  (0) 2024.03.27
올바른 괄호  (0) 2024.03.26

JadenCase 문자열 만들기: 연습문제 Lv.2

 

https://school.programmers.co.kr/learn/courses/30/lessons/12951

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

class Solution {
    public String solution(String s) {
        String answer = "";
        
		for(int i=0;i<s.length();i++) {
			if(i>0) {
				if(s.charAt(i-1) == ' ' && ((s.charAt(i) > 96 && s.charAt(i) < 123) || (s.charAt(i) > 64 && s.charAt(i) < 91))) {
					answer += String.valueOf(Character.toUpperCase(s.charAt(i)));
				} else {
					answer += String.valueOf(Character.toLowerCase(s.charAt(i)));
				}
			}else {
				answer += String.valueOf(Character.toUpperCase(s.charAt(i)));
			}
		}
        
        return answer;
    }
}

 

반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

둘만의 암호  (0) 2024.04.06
게임 맵 최단거리  (0) 2024.04.06
최댓값과 최솟값  (0) 2024.03.27
올바른 괄호  (0) 2024.03.26
카펫  (0) 2024.03.24

최댓값과 최솟값 : 연습문제 Lv2

 

https://school.programmers.co.kr/learn/courses/30/lessons/12939

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

class Solution {
    public String solution(String s) {
        String answer = "";
        
        String[] str = s.split(" ");
		
		int max = Integer.parseInt(str[0]);
		int min = Integer.parseInt(str[0]);
		
		for(int i=0;i<str.length;i++) {
			max = Math.max(max, Integer.parseInt(str[i]));
			min = Math.min(min, Integer.parseInt(str[i]));
		}
        
        answer = min + " " + max;
        
        return answer;
    }
}

 

 

반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

게임 맵 최단거리  (0) 2024.04.06
JadenCase 문자열 만들기  (0) 2024.04.06
올바른 괄호  (0) 2024.03.26
카펫  (0) 2024.03.24
타겟 넘버  (0) 2024.03.23

올바른 괄호 : 스택/큐 Lv2

 

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

import java.util.LinkedList;
import java.util.Queue;

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

        char[] str = s.toCharArray();
		int leftSize = 0;
		int rightSize = 0;
		
		Queue<Character> block = new LinkedList<>();
		
		for(int i=0;i<str.length;i++) {
			if(str[0] == ')') {
				answer = false;
                return answer;
			}
			
			block.add(str[i]);
		}
		
		int idx = 0;
		int blockSize = block.size();
		while(idx < blockSize) {
			char cBlock = block.poll();
			if(cBlock == '(') leftSize++;
			else if(cBlock == ')') rightSize++;
			
			if(rightSize > leftSize) {
				answer = false;
			}
			
			idx++;
		}
		
		if(leftSize != rightSize) answer = false;

        return answer;
    }
}

 

반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

JadenCase 문자열 만들기  (0) 2024.04.06
최댓값과 최솟값  (0) 2024.03.27
카펫  (0) 2024.03.24
타겟 넘버  (0) 2024.03.23
구명보트  (0) 2024.03.23

카펫 : 완전 탐색 Lv2

https://school.programmers.co.kr/learn/courses/30/lessons/42842

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

class Solution {
    public int[] solution(int brown, int yellow) {
        int[] answer = new int[2];
        
        int w = (brown + yellow) / 3; //가로 최대 길이 = 전체 격자 개수 / 3
		int h = 3; //세로 최소 길이 = 3
		
		while(w >= h) {
			if(w*h == brown + yellow && 2*(w + h) == (brown + 4)) {
				answer[0] = w;
				answer[1] = h;
				break;
			}
			h++;
			w = (brown + yellow) / h;
		}
        
        return answer;
    }
}
반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

최댓값과 최솟값  (0) 2024.03.27
올바른 괄호  (0) 2024.03.26
타겟 넘버  (0) 2024.03.23
구명보트  (0) 2024.03.23
햄버거 만들기  (0) 2024.03.20

+ Recent posts