목차 문제 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다. 암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음(a, e, i, o, u)과 최소 두 개의 자음으로 구성되어 있다고 알려져 있다. 또한 정렬된 문자열을 선호하는 조교들의 성향으로 미루어 보아 암호를 이루는 알파벳이 암호에서 증가하는 순서로 배열되었을 것이라고 추측된다. 즉, abc는 가능성이 있는 암호이지만 bac는 그렇지 않다. 새 보안 시스템에서 조교들이 암호로 사용했을 법한 문자의 종류는 C가지가 있다고 한다. 이 알파벳을 입수한 민식..
방금 알고리즘 문제를 풀다가 파이썬엔 무려 대칭차집합을 한 번에 찾아주는 연산이 있다는 사실에 충격을 받았다. 아무 생각도 없이 자바에서 푸는 것처럼 풀었다가 이게 웬걸.. 해서 문제를 하나하나 정리하기보단 집합과 관련된 연산을 정리하고 넘어가는 게 좋을 것 같아 여기에 글을 팠다. 설명할 내용은 이게 끝이고, 코드도 매우 짧지만, 강력하다. a = {2, 3, 5, 7, 9, 11} b = {1, 3, 5, 7, 9} a.add(13) a.update({17, 19}) a.remove(19) # 합집합 print(a | b) print(a.union(b)) # 교집합 print(a & b) print(a.intersection(b)) # 차집합 print(a - b) print(a.difference(..
목차 지난 한 주간은 백준에서 집합과 관련된 문제를 주로 풀었다. 그러면서 해시 셋과 트리 셋의 특성에 대해 전보다 익숙해진 느낌이 들어 든든한 느낌도 든다. 어쨌거나 집합과 맵에 대한 문제를 풀어본 김에, 자바 컬렉션 프레임워크에서 제공하는 집합과 관련된 메서드를 정리하고 가면 좋겠다는 생각이 들었다. 대단히 어려운 내용은 없지만, 그림과 함께 하나씩 정리하자. 먼저, 아래와 같은 셋 두 개를 준비한다. public class example { public static void main(String[] args) { Set treeSet = new TreeSet(List.of(1, 2, 3, 4, 5)); Set hashSet = new HashSet(List.of(4, 5, 6, 7, 8)); } }..
문제 자연수를 원소로 갖는 공집합이 아닌 두 집합 A와 B가 있다. 이때, 두 집합의 대칭 차집합의 원소의 개수를 출력하는 프로그램을 작성하시오. 두 집합 A와 B가 있을 때, (A-B)와 (B-A)의 합집합을 A와 B의 대칭 차집합이라고 한다. 예를 들어, A = { 1, 2, 4 }이고, B = { 2, 3, 4, 5, 6 }라고 할 때, A-B = { 1 }이고, B-A = { 3, 5, 6 } 이므로, 대칭 차집합의 원소의 개수는 1 + 3 = 4개이다. 입력 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈칸을 사이에 두고 각각 주어진다. 각 집합의 원소의 개수는 200,000을..
- Total
- Today
- Yesterday
- 백준
- spring
- 동적계획법
- 기술면접
- RX100M5
- 남미
- 면접 준비
- BOJ
- 칼이사
- 중남미
- 스트림
- a6000
- 여행
- 알고리즘
- 세모
- 야경
- Backjoon
- 유럽여행
- 파이썬
- 스프링
- 맛집
- 지지
- 세계여행
- java
- Python
- 자바
- Algorithm
- 세계일주
- 유럽
- 리스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |