본문 바로가기

Java21

Programmers - 주차 요금 계산(Java) https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 2개의 map과 한 개의 set을 이용해 누적 시간 및 차량 내역을 기록 정산한 후 다시 주차하는 차량도 있기 때문에 차량번호가 중복되지 않게 Set을 이용해 기록 요금 계산 시, 분 .. 2022. 2. 13.
Programmers - 표 편집(Java) https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 풀이 삭제와 복원 기능의 시간을 최소화하는 Linked List를 이용하여 풀이 Node의 연결 관계만 변경하면 삭제된 Node가 있더라도 이동 명령을 수행하기 편함 Linked List 정의 및 초기화 입력값 n의 최대값 만큼 Node 배열을 생성 0 ~ n-1 의 Node의 prev/next를 이전/다음 No.. 2022. 2. 8.
Programmers - 사라지는 발판(Java) https://programmers.co.kr/learn/courses/30/lessons/92345 코딩테스트 연습 - 사라지는 발판 [[1, 1, 1], [1, 1, 1], [1, 1, 1]] [1, 0] [1, 2] 5 [[1, 1, 1], [1, 0, 1], [1, 1, 1]] [1, 0] [1, 2] 4 programmers.co.kr 풀이 다음 2가지의 경우에 승패가 결정됨 상하좌우 4방향 중 어떠한 방향으로도 이동 불가인 경우 하나의 발판에 2명이 위치할 때, 한명이 다른 발판으로 이동하여 현재 발판이 사라질 때 지는 플레이어든 이기는 플레이어든 각자 최적의 플레이로 진행 이기는 플레이어 - 최대한 빨리 승리하는 방향으로 진행 -> 움직이는 횟수를 최소화 지는 플레이어 - 최대한 오래 버티는.. 2022. 2. 3.
Programmers - 파괴되지 않은 건물(Java) https://programmers.co.kr/learn/courses/30/lessons/92344 코딩테스트 연습 - 파괴되지 않은 건물 [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr 풀이 단순 입력값에 대한 모든 요소를 갱신하는 방법으로 해결은 가능하지만, 효율성에서 시간초과 발생 - O(N * M * K)의 시간복잡도 (N = skill 횟수, M, K = 2중 for문) 시작점에 +N.. 2022. 1. 30.
Programmers - 양과 늑대(Java) https://programmers.co.kr/learn/courses/30/lessons/92343 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr 풀이 풀이에 필요한 변수 정의 및 초기화 탐색마다 갱신해야하는 최대 양의 수 해당 index의 자식 Node를 담고 있는 ArrayList배열 함수내에서 편하게 쓰기위한 입력값 info와 같은 값으로 전역변수 정의.. 2022. 1. 24.
Programmers - k진수에서 소수 개수 구하기(Java) https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 풀이 해당 문제를 풀기위해서는 아래의 3단계가 필요함 k진수 변환 0P0, P0, 0P, P의 수 찾기 -> 0을 기준으로 구분되는 수 소수인지 확인 k진수 변환 주어진 입력 값을 k 진수로 변환 입력 값을 0이 될때까지 k로 나눈뒤 나머지를 String에 삽입 모든 삽입이 끝나면, String을 반대로 뒤집으.. 2022. 1. 21.
Programmers - 신고 결과 받기(Java) https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 풀이 풀이에 필요한 Map 정의 및 초기화 key는 유저아이디, value는 key를 신고한 유저의 아이디의 Set을 가진 Map 동일한 유저에 대한 신고횟수는 1회로 처리하기 때문에 중복을 없애기 위해 Set을 Value로 함 key는 유저아이디, value는 임의의 인덱스를 가진 Map을 정의 int[] answer = new int[id_list.l.. 2022. 1. 21.
Programmers - 수식 최대화(Java) https://programmers.co.kr/learn/courses/30/lessons/67257?language=java 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 풀이 입력으로 주어진 문자열을 숫자, 연산자로 분리 연산자의 우선순위에 대해 모든 경우의 수를 탐색 - 경우의 수마다 계산하여 최대값과 비교 갱신 연산자, 숫자 분리 전역변수 정의 // 문자열의 숫자 부분 static List numList = new ArrayList(); // 문자열의 연산자 부분 static List optList.. 2022. 1. 17.
BOJ 8972 - 미친 아두이누(Java) https://www.acmicpc.net/problem/8972 8972번: 미친 아두이노 요즘 종수는 아두이노를 이용해 "Robots"이라는 게임을 만들었다. 종수는 아두이노 한대를 조정하며, 미친 아두이노를 피해다녀야 한다. 미친 아두이노는 종수의 아두이노를 향해 점점 다가온다. www.acmicpc.net 풀이 플레이어의 이동 명령만큼 1~6을 반복, 미친 아두이노와 플레이어 아두이노가 겹치면 게임 종료 1. 종수(플레이어) 이동 2. 이동 횟수 ++ 3. 플레이어가 죽었는지 확인 4. 미친 아두이노 이동 5. 플레이어가 죽었는지 확인 6. 겹치는 미친 아두이누 폭발 미친 아두이노의 위치 정보를 2차원 배열 List와 List를 이용해 관리 static List[][] map; static Lis.. 2022. 1. 14.