120866. 안전지대 자바
·
문제 풀이/Programmers
해당 문제를 풀기위한 가장 난관은 가장자리에 있는 폭탄은 어떻게 연산할것인가? 이다. 가장자리가 아닌 배열들은 2차배열값안에서 x축과 y축을 각각 x-1 , x , x+1 // y-1 , y , y-1을 폭탄의 범위로 구한후 나머지 0들의 개수를 계산하면 되지만 가장자리는 위와 같은 범위와 다르게 연산해야한다. 📌이때 가장 쉽게 해결 할 수 있는 방법은 원래 범위의 배열보다 상하좌우 전부 1칸씩 확장하는 것이다. 그럼 가장자리도 가운데에 있는 배열처럼 같은 알고리즘으로 해결할 수 있다. 이해하기 쉽게 아래 사진을 첨부해 두었다. 나는 폭탄의 주변을 2로 바꾸는 연산을 수행 후 0의 개수를 파악했다. 이떄 가장자리의 숫자들은 내가 확장한것으로 0이있더라고 세지 않는다. class Solution { pub..
181916. 주사위 게임 3 자바
·
문제 풀이/Programmers
배열의 1~6자리에 각 수자가 나올때마다 +1씩해준다. 그러면 배열의 각 자리에 숫자가 나온 빈도가 출력됨. 경우의 수 cnt는 새로운 숫자가 배열에 추가될 때마다 +1씩 해준다. 예시) cnt가 1인경우 : 모두 같은 숫자 cnt가 2인경우 : 두개의 숫자가 들어옴 cnt의 상황에 따라 경우의 수를 추가한다. cnt가1이면 모두 같은 숫자이므로 고려x cnt가 2이면 두개의 상황이 주어진다. 📌3개의 같은 숫자 + 1개의 다른 숫자 📌2개의 같은 숫자 + 2개의 같은 숫자 📌또한 숫자의 대소관계를 파악해야 함 cnt가 3이면 하나의 상황 3개의 같은 숫자와 1개의 다른 숫자 cnt가 4이면 하나의 상황 가장작은 숫자를 찾아서 출력한다. class Solution { public int solution(..
181893. 배열 조각하기 자바
·
문제 풀이/Programmers
ArrayList를 사용하여 조건에 맞게 add와 remove를 사용한다. import java.util.ArrayList; class Solution { public int[] solution(int[] arr, int[] query) { ArrayList list = new ArrayList(); for(int i: arr) list.add(i); for(int i=0; i