Java/코딩테스트
-
프로그래머스 - 단속카메라, 백준 13549, 5427Java/코딩테스트 2023. 11. 10. 02:28
🚨 프로그래머스 : 단속카메라 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚨그리디 알고리즘 문제 🚨진입 / 진출 지점에서 만난 것도 만난 것으로 인정하므로 구간 끝에 카메라를 설치한다고 생각하면 된다. 🚨여기서 진입 지점으로 정렬할지 진출 지점으로 정렬할지 헷갈렸는데 진출 시점으로 정렬해야 한다. 첫 구간이 아주 길다면 내부 구간이 다 무시되기 때문이다. 🚨그림 설명 🚨전체코드 참고로 pivot은 이 구간의 최솟값이 -30000이라 -30..
-
백준 11501, 2169, 프로그래머스 체육복Java/코딩테스트 2023. 11. 7. 18:21
📈 백준 11501 : 주식 https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net 📈 메인 로직 각 날짜의 주식가격을 배열에 쭉 저장해둔다. 그리디 유형의 문제긴 하지만, 무조건 높을때 다 팔고 끝나는것이 아니라 마지막날에도 이전보다 올랐다면 팔 수 있다. 뒤에서부터 차례로 돌면서 현재 내가 가진 최댓값보다 높은 가격이 나왔다 = 그날 기점으로 가격이 떨어졌다 이것이므로 최댓값을 갱신해준다. 그 외에는 최댓값보다 낮은 날이므로 무조건 사..
-
프로그래머스 - 숫자 변환하기, 택배 배달과 수거하기, 백준 16918Java/코딩테스트 2023. 10. 28. 02:45
🔢 프로그래머스 : 숫자 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다. x에 n을 더합니다 x에 2를 곱합니다. x에 3을 곱합니다. 자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요. 🔢 이 ..
-
프로그래머스 - 입국심사, 징검다리Java/코딩테스트 2023. 10. 24. 01:34
이 2가지 문제는 모두 고득점 kit ~ 이진 탐색 카테고리에 있는 문제이다. 이진탐색 문제를 잘 안 풀었던 것 같아서 낯설어서(...) 알고리즘 이론 먼저 정리하려 한다. 💎 이진탐색이란? 찾고자 하는 정답이 포함된 범위 중 가운데를 검사하고, 정답과 비교하여 절반의 범위를 제외한다. 탐색할 대상은(배열이나 리스트) 순차적으로 정렬되어 있어야 한다. 시간복잡도는 O(logN)으로, 탐색하려는 대상이 클 수록 선형 탐색보다 성능이 좋아진다. 마지막 남은 원소가 반드시 정답은 아닐수도 있으므로 원소 하나 남았을 때 정답 만족 여부도 검사해야 함 ex) 배열에서 10 이상의 값 중 가장 작은 값 찾기 ~ 배열 자체에 다 10 안넘는 애들만 있을수도 있으므로! Parametric Search ~ 정답 조건을 ..
-
프로그래머스 - 호텔 대실, 뒤에 있는 큰 수 찾기, 주차 요금 계산Java/코딩테스트 2023. 10. 22. 01:58
🏨 프로그래머스 : 호텔 대실 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🏨 우선 순위 큐 2개를 가지고 푸는 문제로, 백준 11000 - 강의실 배정 문제와 유사하다고 느꼈다. 🏨 최소한의 객실만을 사용, 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소 필요 🏨 Room 클래스 : 들어온 시간, 나간 시간 계산하기 처음에는 들어온 / 나간 시간 + 분을 다 해서 4개로 구성했는데, 그냥 처음부터 분으로 계산해서 비교하면 한 ..
-
백준 23288Java/코딩테스트 2023. 10. 13. 20:04
🎲 백준 23288 주사위 굴리기 2 https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 🎲 어릴때부터 이런 입체도형 계산하는 문제를 유구하게 못했는데 ..주사위 돌아가는거 생각하는게 헷갈렸다ㅎ 🎲 주사위 돌아가는 부분을 이 블로그를 보고 힌트를 얻었다. 🎲 주사위 🎲 주사위 자체를 현재 방향에 따라 위 이미지처럼 계속 돌려가면서, 아랫면 (dice[3][1]) 만 점수 비교하는데 쓰면 된다. 🎲 자료구조 private stati..
-
백준 20055Java/코딩테스트 2023. 10. 13. 19:36
🤖 백준 20055 : 컨베이어 벨트 위의 로봇 https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 🤖 쉬웠는데, 딱 한 조건 빼먹어서 고생한 문제...부들부들... 🤖 나는 컨베이어벨트가 두 줄이고, 첫 줄의 마지막 원소를 두 번째 줄의 마지막에, 두 번째 줄의 첫 원소를 첫 줄의 맨 앞에 넣는 것을 보고 LinkedList를 사용하면 되겠다고 생각했다. 🤖 그리고 문제 조건에서 보면 알겠지만, 결국 로봇은 첫 줄에서만 움직..
-
백준 19237Java/코딩테스트 2023. 10. 12. 23:54
🦈 백준 19237 : 어른 상어 https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 🦈 생각보다 괜찮게 풀었던 문제. 마법사 상어와 복제마법 문제와 로직이 어느정도 겹치는 느낌이 있다. (냄새 배열을 3차원으로 만드는 것 등) 🦈 Static 변수들 // 상 : 0, 하 : 1, 좌 : 2, 우 : 3 private static int[] dirX = { -1, 1, 0, 0 }; // 상하좌우 순 p..