Banner

My Tech Blog (풀이)

오늘의 명언
📑 1. 문제설명계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다.  가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000,000,007로 나눈 나머지를 return 하도록 solution 함수를 작성해주세요. 제한사항격자의 크기 m, n은 1 이상 ..
📑 1. 가위바위 보 ⭐ 정답코드import java.util.*;class Solution { public String solution(String rsp) { char[] arr = rsp.toCharArray(); StringBuilder sb = new StringBuilder(); for (char c : arr) { if (c=='2') { sb.append('0'); } else if (c=='0') { sb.append('5'); } else if (c=='5') { sb.append('2'); ..
📑 1. 문제설명💡 2. 접근방식매우 쉬운 문제이다. 예시에서 n이 20 일때 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return한다. 즉, n의 약수의 개수를 구하는 문제이다. 1부터 n까지 for문을 돌려 n%i가 0으로 떨어지면 카운트해서 answer에 누적한다. ⭐ 3. 정답코드class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i
📑 1. 문제설명💡 2. 접근방식`String.valueOf()` Java에서 다양한 타입의 값을 문자열로 변환하는 메서드`문자열 변수명.toCharArray()`: 문자열을 한글자씩 배열로 만드는 메서드`(char)('a' + (digit - '0'))`: 숫자를 문자로 변환하여 알파벳을 얻는 코드 (아래에서 자세히 설명)⭐ 3. 정답코드class Solution { public String solution(int age) { StringBuilder result = new StringBuilder(); String ageStr = String.valueOf(age); for (char digit : ageStr.toCharArray()) { ..
📑 1. 피자 나눠 먹기(1) 첫 번째 시도 틀림 (정확도 80%)테스트 케이스 5,6에서 틀림 이유는 7의 배수 일 때 불필요하게 한 판이 추가됨n을 7로 나눈 나머지가 0일 때 (7의 배수 일 때는) n/7만 리턴하도록 코드 추가해 주었다.  ⭐정답코드class Solution { public int solution(int n) { if (n ⭐최적 코드 n / 7.0을 하면 소수점이 나올 때 올림해야 하지만, 정수 연산을 활용해 계산을 단순화할 수 있다. (n + 6) / 7은 n을 7로 나눴을 때 남은 조각이 있으면 자동으로 올림 효과를 주기 때문이다.이렇게 하면 Math.ceil(n / 7.0) 같은 실수 연산 없이, 정수 연산으로 간단하게 해결할 수 있다.import jav..
📑 1. 문제설명💡 2. 접근방식이 문제는 해시맵을 사용해서 풀었다.배열을 순회하면서 각 숫자의 등장 횟수를 카운트해서 해시맵에 저장한다.  (key: 등장한 숫자, value: 카운트)해시맵을 순회하면서 최빈값을 찾는다. → maxCount보다 더 큰 count(value 값)이 존재하면 maxCount를 count로 업데이트 한다.이 과정에서 등장 횟수가 동일한 값이 있는지도 탐색한다. 만약 중복된 최빈값이 있으면 isDuplicate를 true로 바꾼다. 최종적으로 삼항연산자를 써서 중복이 있으면 -1을 반환, 그렇지 않으면 최빈값을 반환한다.⭐ 3. 정답코드import java.util.HashMap;import java.util.Map;class Solution { public int ..
📑 1. 문제설명💡 2. 접근방식 ✔️ 문제 요약 - 지뢰찾기 게임board는 n x n 크기의 2D 배열이다.지뢰가 있는 위치는 1, 없는 위치는 0이다.지뢰(1)가 있는 곳을 기준으로 주변 8방향 + 자기 자신까지 위험지대(1)로 표시해야 한다.최종적으로 안전한 지역(0)의 개수를 반환하는 문제이다.✔️ 풀이 방식배열 bd[][] 생성 → 기존 board[][]의 정보를 가져온다.board[][] 에서 지뢰(1)를 찾으면 주변 8방향 + 자기 자신을 1로 변경한다.이 때 중요한 것은 배열 범위를 벗어나지 않도록 Math.min(), Math.max()를 사용해서 인덱스 위치를 조정한다.모든 위험지대를 표시한 후 남은 0의 개수를 세어 반환한다.그림으로 표현해 보았다. 지뢰가 있는 위치 즉, boa..
📑 1. 문제설명Write a function to find the longest common prefix string amongst an array of strings.If there is no common prefix, return an empty string "".Note: All given inputs are in lowercase letters a-z. a-z의 소문자 알파벳으로 단어들로 구성된 배열이 주어졌을 때, 모든 문자열에 공통되는 가장 긴 접두사를 리턴하라. 접두사가 없는 경우에는 빈 문자열을 리턴하라. Example 1Input: ["flower","flow","flight"] Output: "fl" Example 2Input: ["dog","racecar","car"] Output..
상단으로