본문 바로가기

알고리즘4

[백준 1946번] 신입사원 (JAVA) https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지.. 2022. 5. 8.
[프로그래머스] 불량 사용자 (JAVA) https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 문제 비정상적인 방법으로 당첨을 시도한 응모자들을 골라내기 위해 불량 사용자 목록에 들어갈 수 있는 응모자 아이디의 경우의 수를 구하는 문제입니다. 응모자 아이디가 user_id로 주어지고, 불량 사용자 아이디 목록이 banned_id로 주어집니다. 주어진 예시로 살펴보면 응모자 아이디와 불량 아이디 목록이 이렇게 주어질 것입니다. '*'는 문자 하나에 해당합니.. 2022. 4. 2.
[백준 11000번] 강의실 배정 (JAVA) https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 문제 수강신청의 마스터 김종혜 선생님에게 새로운 과제가 주어졌다. 김종혜 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉, Ti ≤ Sj 일 경우 i 수업과 j 수업은 같이 들을 수 있다.) 수강신청 대충 한 게 찔리면, 선생님을 도와드리자! 입력 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,.. 2022. 4. 1.
[알고리즘] 재귀 함수(Recursive Function) 재귀 함수란? 함수 내에서 자신을 다시 호출하여 반복 작업을 수행하는 방식의 함수 함수 내에 같은 이름의 함수가 오는 것 재귀 함수(알고리즘)의 조건 무한 루프로 인해 stackoverflow가 되는 것을 방지하기 위해 종료 조건을 꼭 포함해야 된다. 기본 구성 Basecase : 종료 조건 Recursive case : 자신을 호출하는 함수를 포함하는 부분 재귀 함수를 이용할 수 있는 유형 Factorial (팩토리얼, n!) X의 n승 구하기 피보나치 수열 유클리드 호제법 (최대공약수) 장점 코드 길이와 변수가 적어져서 가독성이 높아진다. 변수 사용을 줄여 준다. (mutable state를 제거하여 프로그램 오류가 발생할 수 있는 가능성을 줄여준다.) 단점 메모리를 많이 차지한다. (함수를 반복적으.. 2020. 6. 18.