[백준/Python] 3085. 사탕게임
·
코딩테스트/BAEKJOON
📌 문제유형: 브루트포스 📌  문제설명: 링크참조 https://www.acmicpc.net/problem/3085 📌  풀이코드 # 2:27 startdef search(): global answer # 가로, 세로로 가장 긴 연속 부분을 찾아야 함 # 1. 행 쪽 for i in range(N): cnt = 1 # 1로 시작해야 마지막까지 셀 수 있다. for j in range(N-1): if arr[i][j] == arr[i][j+1]: cnt += 1 answer = max(answer, cnt) else: # 연속을 찾아야 되는데, 중간에 끊기면..
[알고리즘 전략] 완전탐색
·
알고리즘
** [한권으로 합격하는 취업 코딩테스트] 책을 참고해 작성했습니다.** 주의점, 기억해야할 것을 위주로 작성합니다.  브루트 포스 Brute-Force - 무차별 대입이라는 의미. - 완전탐색 전략을 충실히 사용해서 확실하게 답을 구하는 알고리즘- 어떤 문제를 풀 때 먼저 '무식하게 모든 경우를 다 살펴봐도 될까?' 생각해보기 (제한시간 오버되면 다른 방법 생각하기)  ** 문제 푸는 방법   1. 반복문   2. 재귀   3. 순열   4. 조합=> 삼성 코테에서 순열 조합 많이 쓰인다고 함.  순열 - n개의 수 중에서 r개를 뽑아 줄을 세우는 총 방법의 수: nPr = n! / (n-r)! - 순서 고려 O - permutations(배열이름, 몇개를 고를지)from itertools import..
[백준/Python] 3040. 백설 공주와 일곱 난쟁이
·
코딩테스트/BAEKJOON
🍀 문제유형: 브루트포스/ DFS 🍀  문제설명(링크참조) https://www.acmicpc.net/problem/3040🍀  풀이코드 # 방법1. DFS # 11:35 start 56 end# dfs..def dfs(i, total, result, cnt): global answer if cnt == 7: if total == 100 : answer = result return if i == 9: return # cnt = 7 이지만 100이 아니면 멈춰야 해 #i 포함 X dfs(i+1, total, result, cnt) #i 포함 O dfs(i+1, total+nums[i], result+..
[백준/Python] 2075. N번째 큰 수
·
코딩테스트/BAEKJOON
🍀 문제유형: 최소힙🍀 문제설명 (링크 참조) https://www.acmicpc.net/problem/2075 🍀 풀이코드 - 첫 시도는 최대 힙 만들어서 n번째 뽑아야지! 했는데 메모리 초과 ~.~import heapq as hqn = int(input())h = []for _ in range(n): tmp = list(map(int, input().split())) for t in tmp: hq.heappush(h, -t)print(-h[n-1]) - 그래서 뭐 어떻게 해야 되지.. 하다가, 최소힙을 각 행마다 만드는 것도 무리일 것 같고,, 고민하다가 해설집 힌트 조금 봤다. n번째로 큰 수는, 가장 큰 수 n개 중에 제일 작은 값이다의 다른 말.. 와우 아이디어,,-..
[백준/Python] 1935. 후위 표기식 2
·
코딩테스트/BAEKJOON
🍀 문제유형: 스택 🍀  문제설명(링크 참조) https://www.acmicpc.net/problem/1935 🍀  풀이코드 n = int(input())cmds = input()nums = []for _ in range(n): nums.append(int(input()))#pt = 0stk = []for cmd in cmds: if cmd.isalpha(): stk.append(nums[ord(cmd)-ord('A')]) #stk.append(nums[pt]) #pt += 1 else: a = stk.pop() b = stk.pop() #print(f"about a{a}, b{b}") if c..
[알고리즘 전략] python 기본 자료구조 정리
·
알고리즘
** [한권으로 합격하는 취업 코딩테스트] 책을 참고해 작성했습니다.** 주의점, 기억해야할 것을 위주로 작성합니다.  배열- 선언 시 주의점 a1 = [[0] * 5] * 3a1[1][1] = 99 # [1][1] 외에 다른 곳의 값도 99로 출력됨. a2 = [[0] * 5 for _ in range(3)]a2[1][1] = 99 # [1][1] 만 변경됨. - 삽입/삭제는 적고 조회가 잦다 => 배열 - 삽입/삭제가 많고 조회가 적다 => 연결리스트 ** 대표문제 - 요세푸스 문제 0  스택/큐  스택 - LIFO Last Input First Output - 삽입/삭제: O(N)- 배열 사용, append(), pop() - 스택 활용 문제: 입력을 순차적으로 살펴보면서 각각의 데이터를 스택에 언..