비트를 쪼개는 개발자

allen321@naver.com

2024/09/05 2

C# [프로그래머스] Lv.3 입국심사

문제 설명 입국 심사를 기다리는 사람들이 입국 심사에 걸리는 최소한의 시간을 계산해야 하는 문제다. 입국 심사를 기다리는 사람은 최대 10억명이고, 심사관의 숫자는 10만명 이하, 그리고 심사관 한명이 입국 심사에 걸리는 시간은 최대 10억분까지도 걸릴 수 있는 제한사항이 주어진다. 얼핏 봐도 최적화가 중요한 문제이고 역시나 완전 탐색으로 먼저 풀어보니 1분마다 시간을 계산해서는 시간복잡도에서 높은 확률로 통과하지 못하는 문제였다.  최적화를 어떻게 시킬까 고민하다가 이분 탐색(이진 탐색) 기법을 사용해서 중간 시간 값을 체크해서 경우의 수를 줄여나가는 방법으로 접근했고 다음과 같은 방식으로 풀어보았다.   해당 코드public static long solution(int n, int[] times){ ..

코딩테스트 2024.09.05

C# [프로그래머스] Lv.2 JadenCase 문자열 만들기

문제 설명  간단한 문자열 문제다. string s 로 입력받은 문자열을 검사해서 각 단어의 첫번째 글자를 대문자로 바꿔주기만 하면 되는 문제다. 해결 포인트는 s로 날아온 문자열을 띄어쓰기를 기점으로 잘 나눠주고, 나눠준 단어별로 첫번째 글자를 대문자로 바꿔주는 조건문만 만들면 손쉽게 해결 가능하다. 첫번째 글자를 대문자로 바꿔준 다음에는 나머지 글자는 소문자로 변경해 주면 끝이다.   해당 코드  public string solution(string s){ // 공백으로 구분된 단어들을 배열로 변환 string[] sWords = s.Split(' '); for (int i = 0; i 0) { // 각 단어의 첫 ..

코딩테스트 2024.09.05