본문 바로가기

전체 글

(104)
2023.01.15 미로탐색 백준 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net import sys from collections import deque input = sys.stdin.readline def bfs(): pos = [0,0] discoverd = deque([pos]) while discoverd: if pos == [N-1,M-1]: break pos = discoverd.popleft() maze[pos[0]][pos[1]] = 0 dx_pos = [[pos[0],pos[1]-1],[p..
2023.01.15 영역구하기 백준 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net import sys input = sys.stdin.readline def main(): def dfs(x,y): nonlocal graph nonlocal counter if 0
2023.01.15 단지번호붙이기 백준 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net import sys input = sys.stdin.readline def main(): n = int(input().strip()) graph = [list(input().strip()) for _ in range(n)] apart_lens = [] def dfs(x,y): nonlocal graph nonlocal count if 0
2023.01.14 백준 바이러스 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net import sys from collections import defaultdict input = sys.stdin.readline def dfs(v = 1,visited = []): if v in visited: # 1번째 탈출조건 : 만약 방문한적이 있다면 탈출 return visited.append(v) # 방문한 곳 추가 for i in graph_dict[v]: # 있는 곳에서 방문 할 수 있..
2023.01.14 백준 쿼드트리 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net import sys input = sys.stdin.readline def quad_tree(): n = int(input().strip()) graph = [list(input().strip()) for _ in range(n)] answer = "" def quad(x,y,n): st = graph[x][y] nonlocal answer for i in range(x,x+n): f..
2023 파이썬 알고리즘 멘토링 1일차 - 문자열 조작 2023년 파이썬 알고리즘 멘토링 수업을 들으면서 느끼고 공부한 점을 정리한다. 이번 글은 1일차의 문자열 조작 파트에 대해서 공부한 코드들 이다 첫 문제는 LeetCode의 125번 Vaild Palindrome문제 이다. 문제를 직관적으로 봤을 때 소문자로 바꿔서 숫자나 알파벳만 뽑아서 슬라이싱으로 확인했다. def isPalindrome(self, s: str) -> bool: s=s.lower() answer = "" for i in s: if i.isalnum(): answer += i return answer == answer[::-1] 같은 문제를 import re의 정규표현식을 사용해서 re.sub을 사용해서 바꾸고 슬라이싱으로 확인했다. import re def isPalindrome(s..
2022.12.28 백준 랜선 자르기 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net if max_num < division_num: division_num = max_num while (True): # 각 선마다 몇개가 나올 수 있는지를 파악 division_lists = list(map(lambda x: x // division_num, num_lists)) # 만족하면 탈출 음.. 만족을 못 할 가능성이 있는지? if sum(division_lis..
파이썬 챌린지가 종료 되었습니다 안녕하세요 파이썬 챌린지를 관리한 금오공과대학교 20학번 황재연 입니다. 2021.07.01 ~ 2021.07.31 까지 진행했단 파이썬 챌린지가 끝을 맺었습니다:) 코로나시기에 입학해서 OT, MT, 각종 동아리 모임들도 많이 못하고, 처음 코딩을 접해보고 시험치고 벌써 2학기를 맞이하네요ㅠㅠㅠ 처음 해보는 멘토링? 챌린지? 같은 거라 알려주는데 부족함이 많았네요. 저는 작년 여름 방학때 여러 수업도 들었지만 친구랑 같이 파이썬 문제를 혼자 풀었어요. 수업도 듣고 문제도 풀고 했지만, 뭔가 내 주변 친구들은 계속 공부하는거 같고 나만 놀고 있는거 같은 느낌도 많이 받았어요. 나만 제자리 걸음이고, 나만 꿈이 없는거 같은 느낌을 받을 수 있습니다. 저도 이런 경험을 했고, 제 주변에도 이런 고민을 가지고..