본문 바로가기

JAVA/Coding Test Study117

[Lv.1] 대충 만든 자판 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 처음 풀었던 코드로는 23개의 테스트 중 13개만 통과하였다... 내가 처음 접근했던 방법은 아래와 같다. targets[i]를 char 배열로 받아온다. char 배열을 하나하나 돌면서 keymap 배열 중 해당 char 를 contain 한 배열의 인덱스를 list에 저장한다. list.size()만큼 for문을 돌면서 Math.min으로 가장 작은 인덱스 값을 idx로 받아온다. 만약 idx가 초기 설정값인 101과 같다면 answer[i] = -1 아니라면 answer[i] = idx + 1 .. 2024. 3. 4.
[Leet Code] Group Anagrams : Java Group Anagrams - LeetCode Can you solve this real interview question? Group Anagrams - Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase leetcode.com 이해하기 같은 문자들로 이루어진 것끼리 List를 이루도록 하여 이중 List로 반환하는 문제였다. 예를 들어 strs = {"eat", "tea", "tan", "ate", "nat.. 2024. 3. 4.
[Lv.2] 문자열 압축 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 처음 생각했던 건 문자열의 길이의 약수들로 쪼개어보는 것이었다. 예를 들어 "aabbaccc" 의 길이는 8이니 스스로를 제외한 약수인 1, 2, 4로 문자열을 쪼개보는 것이다. 하지만 역시나 fail... 왜일까 생각해봤는데 약수로 접근했던 방법이 틀렸던 것 같다. 굳이 약수가 아니더라도 주어진 문자열의 절반까지만 for문을 돌리면 된다. (절반으로 잡은 이유 : 절반을 넘게 되면 2번 이상 반복 불가) 문제풀이 class Solution { public int solution(String s) {.. 2024. 2. 28.
[Lv.2] 거리두기 확인하기 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 대기실의 모든 자리를 탐색하면서 모든 P를 찾는다. 모든 P에 대해서 거리두기를 만족하는지 확인한다. BFS 이용하기! 문제풀이 1. 대기실의 모든 자리를 탐색하면서 'P'를 찾는다. 2. BFS를 돌리며 맨해튼 거리 2 이내에 P가 또 있는지 확인한다. 2 2 1 2 2 1 P 1 2 2 1 2 2 거리두기를 지키기 위해 1번 자리에 와도 되는 것은 'O'나 'X'이다. 1번 자리에 'P'가 온다면 ? false 1번 자리에 'X'가 온다면? 막혀있는 것이므로 2번 자리에 무엇이 와도 상관 없음 →.. 2024. 2. 28.
[Bronze_IV] 백준 - 2480. 주사위 세개 : Java 2480번: 주사위 세개1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만www.acmicpc.net   이해하기같은 눈이 3개가 나오면 10,000원 + (같은 눈) x 1,000원a == b && a == c같은 눈이 2개만 나오는 경우에는 1,000원 + (같은 눈) x 100원a == b && a != ca == c && a != bb == c && b != a모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈) x 100원else 문 내 max 찾기 문제 풀이import java.io.BufferedReader;import java.io... 2024. 2. 21.
[Bronze_III] 백준 - 2884. 알람 시계 : Java 2884번: 알람 시계상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,www.acmicpc.net   이해하기주어진 시, 분에서 45분을 뺀 시, 분을 출력H시 M분이 주어졌을 때M이 45보다 작은 경우H -= 1만약 계산 결과 H가 0보다 작다면 H = 23또는 H + 24여기서는 45분을 빼는거라 H에서 1 이상을 뺄 경우가 없으니 H = 23으로 풀이M = M + 60 - 45M이 45보다 크거나 같은 경우H는 그대로M -= 45 문제풀이import java.util.Scanner;public class Main { public static void main(.. 2024. 2. 21.