CODING TEST 28

프로그래머스 - 안전지대

시뮬레이션. 작은 의미로 문제가 제시한 규칙에 따라 구현하는 문제 예) 로봇청소기 이동, 지뢰찾기 등 안전지대. 나의 풀이. 매개변수로 들어오는 2차원배열 board에 1이 들어간 인덱스의 위치를 찾고 그때 인덱스 값 행 i, 열 j 의 12시 / 1시 / 3시 / 5시 / 6시 / 7시 / 9시 / 11시 방향의 행 과 열의 배열을 만들어 임시값으로 쓰일 행 i, 열 j 의 변수를 만들어 인덱스 마다 더해주고 더한 위치의 값이 0인 경우 -1 (중복 방지 0, 1 외 수로)로 바꿔준다. 그리고 정답은 0의 갯수를 반환해야 하기 때문에 처음에 answer를 board의 모든 칸을 할당해주고 1을 찾았을 경우와 0을 1로 바꿔줬을 때 answer-- 해준다. package day016; import jav..

CODING TEST 2023.05.17

프로그래머스 - 완주하지 못한 선수

나의 풀이. 첫번째 참여자 배열에서 HashMap.put 하는데 getOrDefault 메서드로 key가 있으면 + 1 없으면 0 으로 해주고 두번째 완주자 배열에서 HashMap.put 할 때 key 가 있으면 해당 value에서 - 1 해주기 그럼 완주하지 못한 애는 value가 1이니 조건문을 통해 answer에 key 할당해주면 OK...? import java.util.HashMap; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; HashMap map = new HashMap(); for (String p : participant) { map.put(p, ..

CODING TEST 2023.05.16

백준 10807번 - 개수 세기

나의 풀이. 이미 풀어봤던 문제인데 이번에는 얼마전 라이브 세션에서 최빈값 구할 때 대표적인 방법이 getOrDefault() 메서드라고 배웠는데 이걸 사용해서 풀어보겠다. // 이전에 풀었던 방식 - 배열, 반복문 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = sc.nextInt(); int[] arr = new int[count]; int matchNumberCount = 0; for (int i = 0; i < count; i++) { arr[i] = sc.nextInt(); } int value = sc..

CODING TEST 2023.05.15

백준 2830번 - 행성 X3

나의 풀이. 비트연산자로 가볍게 풀 수 있다고 생각했던 내가... 또르르.. 먼저 각 A, B, C 라는 사람이 있으면 A와 B, A와 C, B와 C의 친밀도를 더해야 하는 문제다. 일단 여기서부터 문제 잘못해석해서 한 번 좌절.. 두번째로 거주민의 수 N의 범위에 좌절... int intimacy = 0; for (int i = 0; i 4 -> 2 -> 0이면 반복문 종료 if (tmp == 1) { // 1이면 countOneArray[index]++; // 해당 index에 1의 개수 증가 } index++; // index 증가 } } for (int i = 0; i < 20; i++){ answer += ..

CODING TEST 2023.05.15

백준 9012번 - 괄호

나의 풀이. 스택을 이용해 "(" 일때 put, ")" 일 때 pop()해서 현재 스택이 비었는지 확인하기. import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int inputCnt = sc.nextInt(); for (int i = 0; i < inputCnt; i++) { String inputStr = sc.next(); Stack stack = new Stack(); boolean checkFlag = true; for (String str : inputStr.split("")) { if (str.equals("(")) { stack.pu..

CODING TEST 2023.05.15

프로그래머스 - 숫자 문자열과 영단어

나의 풀이. 새로운 String배열을 만들어 각 문자열에 맞는 인덱스에 배열을 선언하고 할당한다. 새로운 String 배열을 반복하면서 String.replace() 메서드를 사용해 각 인덱스 요소가 있으면 String으로 변환한 index로 교체해준다. class Solution { public int solution(String s) { int answer = 0; String[] strArr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; for (int i = 0; i < strArr.length; i++) { s = s.replace(strArr[i], String.valueOf(i)); } a..

CODING TEST 2023.05.15