[백준/Python] 1764. 듣보잡
·
코딩테스트/BAEKJOON
https://www.acmicpc.net/problem/1764   듣지도, 보지도 못한 이름을 찾아야 하니까 교집합을 찾으면 될 것이다.  집합 set()으로 바꿔주고,  arr1.intersection(arr2) 를 해주면 차집합이 된다.  N, M = map(int, input().split())arr1 = []arr2 = []for _ in range(N): arr1.append(input())for _ in range(M): arr2.append(input())arr1 = set(arr1); arr2 = set(arr2)ans = list(arr1.intersection(arr2))ans.sort()print(len(ans))for a in ans: print(a)
[백준/Python] 9012. 괄호
·
코딩테스트/BAEKJOON
1. 유형: 스택  2. 문제  3. 풀이 ** ( 만 스택에 push 하는 걸로 간다. ** 괄호 VPS가 성립되지 않는 경우는 외우게 좋겠다. 1. )를 만났을 때 stack이 비어있는 경우; 안 빈 경우에는 pop 2. VPS를 모두 돌았는데도, stack이 안 비어있는 경우 T = int(input())for tc in range(T): stack = [] # ) 만 저장 vps = input() flag = 1 for v in vps: if v == "(": stack.append(v) elif v == ")": if stack: stack.pop() else: ..
[백준/Python] 10773. 제로
·
코딩테스트/BAEKJOON
1. 유형: 스택  2. 문제  3. 풀이 기본적인 스택 연산 구현 연습import sysK = int(sys.stdin.readline())stck = []for i in range(K): n = int(sys.stdin.readline()) if n == 0: if stck: stck.pop() else: continue else: stck.append(n)print(sum(stck))
[백준/ Python] 28278. 스택2
·
코딩테스트/BAEKJOON
문제 풀이 코드 기본적으로 스택 연산 사용할 줄 알면, 쉽게 풀리는 문제였다!대신, 입력 양이 너무 커지면 문제가 생기길래 이 부분에 대해 알아보니, import sys n = int(sys.stdin.readline()) 이걸 사용하면 빠르게 입력을 받을 수 있다고 한다.풀다가 영 답이 안 보이면 이렇게도 해봐야지 #N = int(input())import sysN = int(sys.stdin.readline())stack = []for i in range(N): n = sys.stdin.readline().split() # n, x = map(int, input().split(" ")) if n[0] == "1": stack.append(n[-1]) elif n[0]..
[알고리즘 전략] 이분탐색
·
알고리즘
** [한권으로 합격하는 취업 코딩테스트] 책을 참고해 작성했습니다.** 주의점, 기억해야할 것을 위주로 작성합니다.  선형 탐색 Linear Search  - 순차탐색의 다른 말 - 배열에 여러 값들을 넣어 두고, 그 중에서 어떤 값을 찾을 때 반복문을 돌려 하나하나 비교하며 찾는 것 - O(N) 이분 탐색 Binary Search  - 탐색할 부분이 하나만 남을 때까지 탐색 범위를 줄여가는 방식 - 조건: 정렬된 배열- left = 0 , right = len(arr)-1, mid = (left + right) // 2로 하는 게 일반적. - arr[mid] > target 이면 왼쪽 탐색 (right = mid - 1) - arr[mid] - O(logN)* 파이썬 라이브러리 bisect from ..
[프로그래머스/Python] 짝지어 제거하기
·
코딩테스트/프로그래머스
📌 문제유형: 스택  📌  풀이코드 # 스택에 하나씩 넣는데, 만약 맨 위에 있는 거랑 같은 거면 pop# 그냥 완전탐색.. def solution(s): answer = -1 stk = [] for i in range(len(s)): ''' 스택이 비어있으면 넣고, stk[-1] 이랑 다르면 넣고 다음 문자로 넘어가기 스택이 안 비어있고, stk[-1]이랑 같으면 pop하고 다음 문자로 넘어가기 ''' if not stk: stk.append(s[i]) continue if s[i] == stk[-1]: stk.pop() else: ..