본문 바로가기

분류 전체보기351

[Java] 자바로 코테 풀 때 입출력 받기 자바로 입출력 받는 코테는 첨 풀어봤는데 잊어버릴꺼 같아서 기록한다. 리트코드나 프로그래머스는 상관없지만 백준 혹은 알고스팟의 경우 입출력이 필요하다. 입력 입력의 경우 Scanner를 쓰면 느리다고 한다. BufferedReader를 사용한 후 StringTokenizer를 사용해서 파싱한다. 출력 출력의 경우도 System.out.println보다는 버퍼를 사용하자. 아래 예시는 첫 번째 줄에는 테스트 케이스의 개수 T가 주어지고 각 테스트 케이스의 첫 번째 줄에는 N과 K 두 번째 줄에는 N개의 숫자를 받는 예시이다. ex) 1 6 4 1 2 3 4 5 6 import java.io.*; public class Main { public void solution() throws Exception{ B.. 2023. 3. 25.
[백준 1966] 프린터 큐 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 약한 유형이어서 정리해본다. 문제의 핵심: 큐가 2개 필요하다. 1) 순서를 저장하기 위해 필요한 큐 2) 주어진 값들 중 최댓값을 찾기 위한 우선순위 큐 문제의 조건에서 선택되지 못한 숫자는 맨 마지막 열에 다시 합류하므로 이 순서를 저장할 큐가 필요하며 주어진 숫자 중 최댓값을 매번 찾아야 하므로 우선순위 큐가 필요하다. 접근법: 큐에는 인덱스와 값을 우선순위 큐에는 값만 저장한다. 1. IF 우.. 2021. 11. 11.
[프로그래머스:고득점kit] 이중우선순위큐 https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 레벨: 3 문제 요약: 스트링을 입력받아서 - I 숫자: 삽입 - D -1 : 최솟값 삭제 - D 1 : 최댓값 삭제 를 진행한 후 [최댓값, 최솟값] 배열을 리턴한다. 없는 경우 [0,0]을 리턴한다. 문제 풀이: 제목이 우선순위큐인만큼 우선순위큐를 사용한다. 최대힙과 최소힙을 선언한 후 I가 들어온다면 힙 모두에 삽입을 한 후 숫자를 카운트한다. cnt를 사용해서 동기화를 진행한다. #include using namespace std; vector solution(vector operations) { vector answer; prio.. 2021. 9. 20.
[백준 5214] 환승 https://www.acmicpc.net/problem/5214 5214번: 환승 첫째 줄에 역의 수 N과 한 하이퍼튜브가 서로 연결하는 역의 개수 K, 하이퍼튜브의 개수 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000) 다음 M개 줄에는 하이퍼튜브의 정보가 한 줄에 하나씩 주어 www.acmicpc.net 느낌상 bfs를 사용해야 하는 것을 알겠으나 연결 그래프를 만들 때 모든 노드 각각에 대해 연결선을 만들면 시간 초과가 발생하는 문제이다. 이 때 사용하는 방법은 바로 더미노드를 만드는 것이다. 더미 노드를 만들어서 허브로 사용하여 노드를 연결한다. 1~n까지는 진짜 노드이고 n+1부터 더미 노드를 설정한다. 더미 노드의 경우 거리가 0으로 처리되게끔 한다. /* 환승 .. 2021. 7. 5.