inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

결혼식 문제 Queue로 풀어봤습니다.

해결됨

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

import java.util.*; class Marry implements Comparable<Marry>{ public int s; public int e; public Marry(int s, int e){ this.s = s; this.e = e; } @Override public int compareTo(Marry o){ if(this.s == o.s) return this.e - o.e; else return this.s - o.s; } } public class 결혼식 { public int solution(Marry[] slot, int n){ int answer = 1; PriorityQueue<Integer> Q = new PriorityQueue<>(); Q.offer(slot[0].e); for(int i = 1; i < n; i++){ while(Q.peek() <= slot[i].s) { Q.poll(); } Q.offer(slot[i].e); answer = Math.max(answer, Q.size()); } return answer; } public static void main(String[] args) { 결혼식 T = new 결혼식(); Scanner in = new Scanner(System.in); int n = in.nextInt(); // ArrayList<Marry> arr = new ArrayList<>(); Marry[] slots = new Marry[n]; for(int i = 0; i < n; i++){ int s = in.nextInt(); int e = in.nextInt(); slots[i] = new Marry(s, e); } Arrays.sort(slots); System.out.println(T.solution(slots, n)); } } 도착 시간이 현재 인덱스의 시작 시간보다 작거나 같을 때 해당하는 Q를 poll() 해주는 방식으로 처리했습니다. 사실 저는 PriorityQueue가 아니라 그냥 Queue로 풀었는데, 둘이 결과가 상이합니다. PriorityQueue로 풀었을 때는 정답 값이 나오는데 그냥 Queue로 풀었을 때는 틀린 값이 나옵니다. PriorityQueue는 우선순위 값을 먼저 반환한다는 차이가 있다는데, Queue를 사용해도 시작 시간 s 값이 같을 경우 e를 오름차순으로 설정해줬기 때문에 e가 작은 값부터 출력이 되어서 정답 값이 나와야 한다고 생각하는데 아니네요.. 계속 짱구를 굴려보는데 이유를 모르겠습니다... 긴글이지만 강사님 도와주십쇼! + 추가 ) Queue로는 해결이 안되었던 이유를 이제야 알 것 같습니다.. 피로연에 도착한 시간 s 값이 0일 때 나가는 시간 e가 76이라고 가정해보고, 다른 하객은 s 값이 75이고, 나가는 시간 e가 76일 때 Queue로 구현하여 FIFO 방식으로 처리하게 되면 도착 시간 s 를 오름차순으로 정렬하기 때문에 0 1 0 1 ... 0 76 과 같이 Q에 저장될 것이고 s = 76이 되었을 때 s = 0 , e = 76인 값만 데이터가 삭제되고, s = 75, e = 76인 값은 데이터가 삭제되지 않는 문제가 발생하게 됩니다. 하지만 PriorityQueue로 구현하게 되면 e 값이 76인 모든 데이터를 삭제할 수 있게 되므로 이러한 문제를 해결할 수 있게 됩니다. 혹시 맞나요..?

  • java
  • 코딩-테스트
zxzxzlxlzlxl 댓글 1 좋아요 2 조회수 450

파티션을 나누고 logical driver로 했는데

미해결

기초부터 따라하는 디지털포렌식

용량이 부족하다고 안내를 해주는 것 같은데 무시하고 다음으로 진행시켜도 될까요??

  • Forensic
김근수 댓글 2 좋아요 0 조회수 576

강사님 안녕하십니까 코틀린 var 선언에 대해서 질문이 있습니다.

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

var 를 선언하게 되면 setter 를 사용한 것 처럼 외부에서도 클래스 내부 필드에 접근하게 되어 캡슐화가 되지 않아서 setter 를 막아주고 싶습니다. 만약 그렇게 하고싶다면 모든 필드에 private set 을 선언해야할 것 같은데 중복코드의 느낌도 있고, 코틀린의 간결함이랑 멀어진다는 생각이 들었습니다. 보통 실무에서는 도메인, jpa 엔티티를 분리하는 방법이 아닌 set 을 막으려면 어떻게 처리를 하는지 궁금합니다.

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
댓글 2 좋아요 1 조회수 477

[FPGA 4장] Hello Matbi World (Vitis Tool 을 이용하여 PS 에 Program 해보기) - 실습편 진행중 오류가 발생 하여 질문 드립니다.

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요. [FPGA 4장] Hello Matbi World (Vitis Tool 을 이용하여 PS 에 Program 해보기) - 실습편 강의를 수강 하면서 Vitis 진행 중 오류가 발생 하여 문의 드립니다. 강의 영상의 16:20 정도 부분을 진행 하다가, hello world 를 선택하고 나서 진행 하면 첨부한 사진과 같은 에러 창이 뜨면서 제대로 진행이 되지 않습니다. 해결 방법 알려주시면 감사합니다. Vitis Log 에서 에러 메시지 내용도 같이 첨부해 드리겠습니다.

  • fpga
  • 임베디드
박현영 댓글 1 좋아요 2 조회수 588

J 노테이션 질문

미해결

[딥러닝 전문가 과정 DL1231] Backpropagation과 야코비안 행렬

J에 0은 왜 붙는것인가요 에포크 의미인가요?

  • 딥러닝
  • 행렬
  • 미적분
dfiejf 댓글 1 좋아요 0 조회수 366

validation

미해결

퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)

q-form에서 validation을 사용하기에 적합한 방법이나 라이브러리가 있을까요?

  • vue.js
  • quasar
INCEPTION 댓글 1 좋아요 0 조회수 386

waitGroup.Done을 지연 시키는 방식

미해결

쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정

안녕하세요. 강사님~! 여러 개념을 쉽게 설명해주셔서 재밌게 듣고 있습니다. ^^ 코드를 찾아보다 다음과 같은 케이스를 보았는데요. 저 방식을 제대로 해석한 것인지 질문드립니다. func main() { waitGroup := sync.WaitGroup{} waitGroup.Add(1) defer waitGroup.Done() // Goroutine 처리 waitGroup.Wait() } defer는 해당 함수가 비정상 종료 되었을 때도 수행한다. 내부 Goroutine에서 Done을 알리지 못했을 때도 Done 호출을 보장하기 때문에 자원 회수를 할 수 있다.

  • go
에반황 댓글 1 좋아요 0 조회수 480

조건 & 연산자 질문!

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 16:11 초에 보면 남성중에 0과 1 여성중에 0과 1 코드를 똑같이 쳤는데 0,0 으로 나옵니다 ㅜㅜ 조건을 따로 만들고 밑에서 & 연산자로 할때 한번씩 인식이 안되는 경우가 있던데 왜그러는 걸까요~?? 시험장에서도 이 부분때문에 고생한적이 있어서 쉬운거지만 질문드려보아요!! len(train[cond0&cond_male]), len(train[cond1&cond_male]) len(train[cond0 & cond_female]), len(train[cond1 & cond_female])

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
baekho113 댓글 1 좋아요 0 조회수 300

첫 번째 예제 질문있습니다.

미해결

쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정

func receiveOnly(c <-chan int) { for i := range c { fmt.Println("received : ", i) } fmt.Println(<-c) } 저번 강의에서 range 키워드로 채널 종료 전까지 채널의 모든 데이터를 수신할 때까지 기다린다고 말씀해주셨는데, 한번 더 채널 수신을 하는 이유가 궁금합니다!

  • go
에반황 댓글 1 좋아요 0 조회수 288

코드 확인 부탁드립니다.

미해결

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

function solution(m, product) { let answer = 0; let n = product.length; let cnt = 0; product.sort((a, b) => a[0] / 2 + a[1] - (b[0] / 2 + b[1])); // console.log(product); for (let i = 0; i < n; i++) { m = m - (product[i][0] / 2 + product[i][1]); cnt++; //console.log("cnt", cnt); if (product[i][0] + product[i][1] > m) break; answer = cnt; } return answer; } //콘솔에서는 cnt가 4로 나왔는데 답에서 3으로 출력이 됩니다.

  • javascript
  • 코딩-테스트
JEE SUN LEE 댓글 1 좋아요 0 조회수 242

해당 강의 점프하고 스프링 핵심원리 - 기본편 으로 가도 되나요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

현재 무료강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 위 강의는 3월쯤 약 70%? 정도 수강했습니다. 그 후에 스프링부트 + JPA + Thymeleaf를 사용한 프로젝트를 하느라 강의를 더 못 들었는데요 아직 스프링에 대해 두루뭉실하게 알고 있는 것 같기도 하고, 강의를 통해서 좀 기반을 다잡고 싶어서 무조건 강사님 강의를 들으려고 합니다. 그런데 다만 제 기억으로는 무료강의 파트가 약간 "맛보기" 형식으로 쑥쑥 훑어 넘어가는 강의였던 것 같아요. (그래서 개인적으로 재미도 그닥 없었던....ㅠㅠ 생소한 거 투성이었다 해야하나..) 현재 제 수준이 어느정도인지 모르겠지만 바로 유료 강의인 스프링 핵심원리 - 기본편 으로 수강을 진행해도 될까요?

  • java
  • spring
  • mvc
  • spring-boot
roovies 댓글 1 좋아요 0 조회수 546

프로젝트 생성 초기 문제가 생겼습니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

자바 버전 설정시 다른 사람들과는 다르게 oracle 버전이 없고 직접 다운받으려했는데 설치가 안됩니다. amazon corretto 11.0.19로 진행해도 되나요?

  • java
  • jpa
댓글 1 좋아요 0 조회수 312

전역 공간에서의 this

해결됨

코어 자바스크립트

안녕하세요! 강의를 들으면서 정리하다가 질문이 생겨 글 올립니다. temp.js var a = 3; console.log(this); 위와 같이 코드를 작성하고 실행시켜 보면 사진과 같이 빈 객체가 나옵니다. 관련해서 다른 글들을 찾아보니, 노드에서는 전역 환경의 this만 global이 아니라 module.exports를 가리킨다 라는 글이 있었습니다. 왜 위와 같은 결과가 나오는지, 실제로 전역 환경의 this는 module.exports를 가리키는 건지 질문 드립니다!

  • javascript
lhr4884 댓글 2 좋아요 0 조회수 454

12100번 구조체를 사용하지 않는 코드가 가능할까요?

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 강사님~ 해당 문제를 처음 풀 때 애초에 구조체를 사용할 생각을 떠올리지 못 해서 구조체 없이 강사님 코드의 rotate90 메서드와 move메서드 아이디어만 활용해서 코드를 작성해보려고 했는데 막혔습니다 ㅜ 제가 생각한 접근법은 완탐으로 5번을 이동시킬 수 있는 모든 경우의 수를 체크해보려했습니다. 근데 기존 완탐 문제들과는 다르게 단순 visited = 0;하는 원복 패턴이 아니라 원복은 불가능해보이고, 원복없이 배열을 90도 회전 -> move(이동하기)까지 마치고 복사 배열을 다음 재귀함수에 넘겨주려고 했는데 그럼 move 메서드에서 배열을 변환 후 복사 배열을 리턴해줘야 되지 않나요? array는 리턴이 되는건지 검색해봐도 처음보는 코드들만 난무해서.. 강사님 코드는 애초에 구조체 내부 각 메서드 마지막에 memcpy를 사용하여 변환된 a 배열을 잘 보존시키는데 구조체 방식이 아니라면 이 문제를 해결할 방법이 없을까요? 이렇게 아예 접근조차 못 하는 문제들은 그냥 강사님 코드보며 외우고 넘어가야하는지 이러면 실력이 느는 것인지 고민되네요 ㅜ 마지막으로 해당 강의에서 move함수가 ⬆️(윗방향)으로 블록이동한다고 설명하시는데 코드는 ⬅️ 방향으로 블록이동인 것 같은데 제가 이해한 게 맞을까요?

  • c++
  • 코딩-테스트
이종현 댓글 1 좋아요 0 조회수 520

책 출판 예정???

해결됨

웹 프론트엔드를 위한 자바스크립트 첫걸음

혹시 책 출판 예정일이 언제쯤인지 물어봐도 되나요??? 미예정인가요?? 아니면 어느 정도 나올 시기가 정해졌나요??

  • javascript
  • dom
혜오 댓글 1 좋아요 1 조회수 475

게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

해당 강의에서 원활한 수강을 위해선 운영체제가 window여야 한다고 올려놨는데 혹시 운영체제를 ubunto로 해도 문제가 없을련지요?

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
신정환 댓글 0 좋아요 0 조회수 822

모르겠어여

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • spring
  • mvc
  • spring-boot
heedda 댓글 1 좋아요 0 조회수 573

재귀함수를 통한 순열 구현이 잘 이해가 가지 않습니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

순열을을 도식화 했을때 swap(0, 0) swap(1 , 0) , swap(2 , 0) 하고 다음과정에 permutation함수가 재귀 호출 되는데요 제가 이해하기론 permutation(3 , 3 , 1) permuatation(3, 3, 2) permutation(3 , 3, 3) 이 맞는거 같은데 왜 permutation(3 , 3 , 1) permuatation(3, 3, 1) permutation(3 , 3, 1) 이렇게 되는지 이해가 되지 않습니다 ㅠㅠ

  • c++
  • 코딩-테스트
지수김 댓글 1 좋아요 0 조회수 691

인기 태그

인프런 TOP Writers

주간 인기글