일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BOPF
- module
- BTP
- python
- mac
- 개발
- 알고리즘
- BOBF
- 클래스
- Eclipse
- 이클립스
- html
- 자바
- Algorithm
- 파이썬
- Fiori
- 맥북
- sap
- 백준 알고리즘
- Deep Learning
- udemy
- java
- SAP 번역
- FPM
- tm
- ABAP
- ui5
- S/4HANA
- visual studio code
- 자바 클래스
- Today
- Total
목록Algorithm (7)
z2soo's Blog
문제 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 풀이 ''' 1: 집이 있는 곳 0: 집이 없는 곳 연결된 집들의 모임 = 단지 단지의 총 수, 각 단지의 집 수(오름차순) 출력 ''' # 행, 열 갯수 입력 받음 N = int(input()) # 연결 정보 저장용 myList = [] # 방문 표시 및 결과 visited = [[0 for _ in range(N)] for i in range(N)] # 연결 정보 입력 받음 for _ in range(N): m = list(input()) m = [int..
문제 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 풀이 # DFS 함수 생성 def dfs(V, myList, visited): if visited[V] == 0: #만약 방문하지 않았다면 visited[V] = 1 #방문하고 result.append(V) #방문 순서 저장하고 for node in myList[V]: #방문한 정점들에 대해 같은 과정 실행 dfs(node, myList, visited) return(result) # BFS 함수 생성 def bfs(V..
문제 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 풀이 # 입력받기 N, M = map(int, input().split()) #행, 열 갯 myList = [] #행, 열 정보 저장용 for _ in range(N): m = list(input()) m = [int(_) for _ in m] myList.append(m) visited = [[0 for _ in range(M)] for i in range(N)] #방문지점 체크용 result = [[0 for _ in range(M)] for i in range(N)] #방문하기 위해..
1. 입력 시간 단축 from sys import stdin # 기존 코드 N, M, V = map(int, input().split()) # 새로운 코드 N, M, V = map(int, stdin.readline().split()) 2. 공백 생성 띄어쓰기가 되지 않은 값을 입력받는 경우 split()가 적용되지 않기 때문에, 이를 구분해서 저장하는 것에 애를 먹는 경우가 있다. 그 때는 다음의 코드를 사용한다. from sys import stdin # 기존 코드 # 새로운 코드 stdin.readline().rstrip() 3. Deque 자료구조 사용 파이썬에는 사실상 que 자료구조가 없고 리스트를 que 처럼 사용하는 상태이다. 그 단점은 복수 스레드 사용으로 시간이 오래걸린다는 것! 그러나..
문제 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 풀이 word = input().upper() checked = [] num_now = 0 for _ in word: if _ not in checked: checked.append(_) n = word.count(_) if num_now == n: word_result = "?" elif num_now < n: num_now = n word_result = _ # 이 부분 때문에 틀린 답이 되어 주석처리함 # if word_result == "?": # break print(word_re..
문제 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 풀이 n, m = map(int, input().split()) list_a = [] list_b = [] for _ in range(n): temp_list = list(map(int, input().split())) list_a = list_a + temp_list for _ in range(n): #처음에 m으로 작성하는 바람에 정방행렬이 아닌 경우 오류 발생 temp_list = list(map(int, input().split()))..
1. 스택 (Stack) 스택 정의 스택은 데이터가 쌓인 형태의 자료구조로써 그 자체가 리스트는 아니지만 파이썬에서 리스트를 가지고 스택처럼 사용할 수 있다. 가장 중요한 것은 후입선출! Last In - First Out (LIFO) 이다. 마지막에 입력 (push) 되어지는 원소는 가장 위에 위치하게 되며 top이라고 불린다. 후에 DP, Backtracking, DFS 등의 알고리즘 풀이에서 스택을 사용하게 된다. 스택의 요소 및 메소드 top : 스택에 마지막 삽입된 원소의 위치 push : 저장소에 자료를 넣는 것, 후입선출 pop : top만 pop 가능, 저장소에서 자료를 꺼내는 것, 자료구조에서 사라짐 isEmpty : 스택이 공백인지 아닌지 확인 peak : 스택의 top에 있는 원소를 ..