알아야 할 것 비트연산자 - 다른 프로그래밍 언어에서 사용하는 방식과 같다. - 추가적으로 `b'10001'` 과 같이 `b`를 붙여 2진수 형태의 문자열을 비트연산할 수 있다. - `b'1001' & b'001' = 1`CASE WHEN 문법 `if - else if - else`방식으로 사용할 수도, `switch - case`방식으로 작성할 수도 있다.if - else if - else방식 CASE WHEN (조건1) THEN (조건에 맞을 경우 대입할 값1) WHEN (조건2) THEN (조건에 맞을 경우 대입할 값2) ELSE (위 조건 모두에 해당하지 않을 경우 대입할 값3) END 기본 적으로 위와 같이 사용한다. 조건에는 서브 쿼리가 올 수도 있다..
Problem Solving/프로그래머스
코딩테스트 연습 - 전화번호 목록 이 문제는 길이에 따라 정렬한 뒤, 그 길이보다 짧은 번호들을 모두 확인해보는 것이 핵심이다. 나는 Set[]을 사용했는데, Set의 contains를 사용할 경우 O(1)의 시간으로 찾을 수 있기 때문이다. 따라서, 길이를 len이라고 뒀을 때, O(len)의 시간으로 해당 전화번호의 접두사가 있는지 확인할 수 있다. 정렬을 하는 이유는 길이가 긴 번호가 앞에 올 수 있는데, 이 때는 나중에 짧은 번호가 들어왔을 때 다른 번호의 접두사인지 확인할 수 없기 때문이다. 따라서, 반드시 정렬을 먼저해 접두사로 사용될 번호들을 저장해두고 확인해야 한다. 해당 전화번호에 접두사가 있는지 확인하는 로직은 아래와 같다. for(String number : phone_book){ i..