-
[알고리즘] 프로그래머스 거리두기 확인하기 Java(자바)코딩/알고리즘 2022. 1. 13. 23:00
- 문제
https://programmers.co.kr/learn/courses/30/lessons/81302
코딩테스트 연습 - 거리두기 확인하기
[["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1]
programmers.co.kr
- 코드 설명
제대로된 알고리즘을 구현하지 못했습니다.
좌표문제에 특히 약점을 보이는 것 같네요... 다른 분들은 dfs로 많이 푸셨습니다.
class Solution { public int[] solution(String[][] places) { int[] answer = new int[places.length]; for(int i=0; i<places.length; i++){ String seats = ""; for(String str : places[i]){ seats = seats.concat(str); } if(checkValidate(seats) == true){ answer[i] = 1; } else answer[i] = 0; } return answer; } private boolean checkValidate(String seats){ int i,idx; for(idx = 0; idx<seats.length(); idx++){ if(seats.charAt(idx) == 'P'){ //좌 if(idx%5 >= 2 ){ String temp = seats.substring(idx-2,idx); if(temp.contains("P") && temp.equals("PX") == false) return false; } //우 if(idx%5 <= 2){ String temp = seats.substring(idx+1,idx+3); if(temp.contains("P") && temp.equals("XP") == false ) return false; } //상 if(idx>9){ String temp = ""; temp = temp.concat(Character.toString(seats.charAt(idx-5))+Character.toString(seats.charAt(idx-10)) ) ; if(temp.contains("P") && temp.equals("XP") == false ) return false; } //하 if(idx<15){ String temp = ""; temp = temp.concat(Character.toString(seats.charAt(idx+5)) +Character.toString(seats.charAt(idx+10))); if(temp.contains("P") && temp.equals("XP") == false ) return false; } } } for(idx = 0, i=0; idx<19 ;idx++,i++){ String temp = seats.substring(idx,idx+2).concat(seats.substring(idx+5,idx+7)); if(temp.replaceAll("P","").length() <=2){ if(temp.equals("PXXP") == false && temp.equals("XPPX") == false){ return false; } } if(i==3){ i = -1; idx++; } } return true; } }
- 결과
'코딩 > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 신고결과 받기 Java(자바) (0) 2022.01.14 [알고리즘] 프로그래머스 뉴스 클러스터링 (0) 2022.01.12 [알고리즘] 프로그래머스 괄호 변환 Java(자바) (0) 2022.01.11 [알고리즘] 프로그래머스 메뉴 리뉴얼 Java(자바) (0) 2022.01.10 [알고리즘] 프로그래머스 단체사진 찍기 Java(자바) (1) 2022.01.07