목록Algorithm (45)
in.add()
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차_상호평가 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 문제 해결 방법 scores 배열의 열이 해당 index의 학생이 받은 점수이므로 열을 탐색하도록 구현했다. class Solution { public String solution(int[][] scores) { String answer = ""; for(int i = 0; i ..
문제 링크 : https://www.acmicpc.net/problem/15961 15961번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 3,000,000, 2 ≤ d ≤ 3,000, 2 www.acmicpc.net 문제 해결 방법 슬라이딩 윈도우를 사용해 구현했다. 처음 k개를 먹고 쿠폰 처리를 안 할 경우 답이 제대로 나오지 않지만, 맞았다고 뜬다. 이 부분에 대한 테스트 케이스가 없는 것 같다. import java.util.*; public class Main { static int N, d, k, c; static int[] sushi; pu..
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo&categoryId=AWXRQm6qfL0DFAUo&categoryType=CODE&problemTitle=5656&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1&&&&&&&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 해결 방법 중복순열과 bfs를 사용하여 구현했다. import java.util.LinkedList; imp..
문제 링크 : https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 해결 방법 우선 끝나는 시간이 빠른 순서로 정렬했다. 끝나는 시간이 같다면 빨리 시작하는 회의가 우선이다. 처음부터 보면서 끝난 시간을 last 변수에 넣고 그 이후에 시작하는 회의가 있다면 last를 갱신해준다. 갱신할 때 answer++ import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int..
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXQsLWKd5cDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 해결 방법 학생마다 자신보다 큰, 작은 학생을 저장하는 HashSet을 가지며 입력을 받을 때 넣어준다. 입력 후 compareHeight 함수로 '1번은 5번보다 키가 작고, 5번은 4번보다 작기 때문에, 1번은 4번보다 작게 된다.' 같은 경우를 처리해준다. 마지막에 학생마다 각 HashSet의 크기를 더한 값이 N-1(자신을 뺀 나머지 학생수)와 같다면 조건을 만족하는 학생..
문제 링크 : https://www.acmicpc.net/problem/1194 1194번: 달이 차오른다, 가자. 첫째 줄에 미로의 세로 크기 N과 가로 크기 M이 주어진다. (1 ≤ N, M ≤ 50) 둘째 줄부터 N개의 줄에 미로의 모양이 주어진다. 같은 타입의 열쇠가 여러 개 있을 수 있고, 문도 마찬가지이다. 그리고, www.acmicpc.net 문제 해결 방법 bfs와 비트마스킹을 사용하여 구현했다. keys 배열을 생각해내는데 오래 걸렸다. "abcdef" 키 에서 a 키를 갖고 있다면 000001 a, d키를 갖고 있다면 001001로 비트마스킹 처리한 값을 keys 배열의 세 번째 index 값으로 접근한다. package com.BOJ; import java.util.LinkedList..
문제 링크 : https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 해결 방법 bfs를 사용해서 구현했다. 2%쯤에서 실패가 떴는데, N == K 일 때 바로 끝내도록 해서 통과할 수 있었다. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int N, K, answer; sta..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 문제 해결 방법 이진 탐색으로 최대 몇 명이 건널 수 있는지 검사한다. mid값 수 만큼의 니니즈 친구들이 징검다리를 건넜을 때 더 이상 밟을 수 없는 돌의 개수가 k 개라면 실패. -> max 값을 줄여준다. k개 미만이라면 성공. -> min 값을 늘려준다. class Solution { public int solution(int[] stones, int k) { int answer = 0; int min = 1; int max = 200000000; whi..