본문 바로가기

알고리즘47

[Baekjoon] 백준 알고리즘: 1269 - 대칭 차집합 문제 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 내가 생각했던 풀이과정 1. 집합에 공통 요소가 없기 때문에 리스트 대신 Set 으로 입력받는다. 2. Set의 교집합, 합집합, 차집합, 대칭 차집합 등의 지원해주는 연산자를 통하여 문제를 풀어낸다. 나의 풀이 A, B = map(int, input().split()) A_set = set(map(int, input().split())) B_set = set(map(int, input.. 2021. 11. 23.
[Baekjoon] 백준 알고리즘: 1181 - 단어정렬 문제 https://www.acmicpc.net/problem/1181 내가 생각했던 풀이과정 1. 단순하게 리스트 안에 단어가 있다면, 추가를 하지 않는다. 2. sort() 함수를 통해 알파벳으로 정렬 3. sorted 람다 함수를 통해 길이별로 정렬 나의 풀이 N = int(input()) temp = [] for i in range(N): word = input() if word in temp: continue else: temp.append(word) temp.sort() temp = sorted(temp, key = lambda x: len(x)) for i in temp: print(i) 다른 사람의 풀이 words_num = int(input()) words_list = [] for _ i.. 2021. 11. 14.
[Baekjoon] 백준 알고리즘: 11899 - 괄호 끼워넣기 문제 https://www.acmicpc.net/problem/11899 11899번: 괄호 끼워넣기 첫 번째 줄에 S를 올바른 괄호열으로 만들기 위해 앞과 뒤에 붙여야 할 괄호의 최소 개수를 출력합니다. 불가능한 경우는 주어지지 않습니다. www.acmicpc.net 내가 생각했던 풀이과정 1. 스택을 이용해서 푸는 문제입니다. 2. 괄호가 올바른지 확인을 해야합니다. 1. 여는 괄호가 나오면 스택에 추가 2. 닫는 괄호가 나왔을 경우 2-1) 스택이 비어있으면 올바르지 않은 괄호 쌍 2-2) 스택의 top이 짝이 맞지 않는 괄호일 경우 올바르지 않은 괄호쌍 2-3) 스택의 top이 짝이 맞는 괄호일 경우 pop 3. 모든 과정을 끝낸 후 스택에 괄호가 남아있으면 올바르지 않은 괄호 쌍, 남아 있지 않.. 2021. 6. 19.
[Baekjoon] 백준 알고리즘: 1302 - 베스트셀러 문제 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 내가 생각했던 풀이과정 1. N의 갯수만큼 책 이름을 입력받으면서 lower( ) 메서드를 통해 소문자로 전부 바꿔준다. 2. 해시를 사용하기 위해 book이라는 빈 딕셔너리 구조를 선언한다. 입력을 받으면서 1) 해시의 keys 안에 만약 이전에 해당되는 key가 존재할 경우 해당되는 key의 value에 1을 더해준다. 2) 해시의 keys 안에 만약 이전에 해당되는 key가 존재.. 2021. 6. 14.