일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스bfs
- 프로그래머스 BFS
- BFS
- 백준 1931 파이썬
- 프로그래머스 단어변환 bfs
- ML
- 프로그래머스 게임맵최단거리
- 백준 잃어버린괄호
- LogisticRegression
- BOJ 1931 파이썬
- 프로그래머스 단어변환 파이썬
- TensorFlow
- 코테
- 머신러닝
- 코딩테스트
- 다중분류
- 프로그래머스 게임맵최단거리 파이썬
- classification
- 프로그래머스 단어변환
- 로지스틱회귀
- keras
- 딥러닝
- BOJ 1931
- 분류
- 백준 잃어버린괄호 파이썬
- Machine Learning
- 백준 1541 파이썬
- BOJ 1541
- BOJ 1541 파이썬
- tensor
- Today
- Total
목록전체 글 (43)
그래도해야지어떡해

문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 231-1보다 작거..

문제 : https://www.acmicpc.net/problem/1541 실버2 - 그리디 알고리즘 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다. 출력 첫째 줄에 정답을 출력한다...
내 희망 직무는 AI 엔지니어 / ML 엔지니어 / Data Scientist 이다. 그래서 머신러닝 관련 수업을 듣기도 하고 EDA, 모델링, 캐글 등에 대한 공부를 중점적으로 하고 있었다. 하지만...... 취업에서는 알고리즘 코딩 테스트가 필수적으로 따랐고, 알고리즘 부분을 소홀히 했던 난 열심히 서류와 인적성을 패스하고도 코테에서 쓰디쓴 맛을 보았다ㅠㅠ 그리고 연구직이 아닌 일반 AI 엔지니어는 무조건 인공지능 관련 업무만 하는것이 아닌 기본적인 백엔드 즉, 알고리즘과 관련된 일을 더 많이 하는 곳도 있다는 것을 알게 되었다 (역시...AI직무인데 모델링이 아닌 알고리즘 코테보나 했더니 다 이유가 있던것...흑흑) 그리고 난 취준을 시작한 이후 꾸준히 공부를 하고 있지만 막상 면접에 가거나 증명을..
r,c,t=map(int, input().split()) graph=[] airs=[] for i in range(r): graph.append(list(map(int, input().split()))) for j in range(len(graph[i])) : if graph[i][j]==-1: airs.append((i,j)) def diffuse() : dx=[-1, 1, 0, 0] dy=[0, 0, -1, 1] tmp =[[0]*c for _ in range(r)] for x in range(r): for y in range(c): if graph[x][y]!=0 and graph[x][y]!=-1: dif_cnt=0 for i in range(4): nx = x + dx[i] ny = y + dy..
n=int(input()) m=int(input()) graph=[[]*n for _ in range(n+1)] for _ in range(m): a,b=map(int, input().split()) graph[a].append(b) graph[b].append(a) cnt=0 visited =[0]*(n+1) # 그래프가 1번부터 시작하기 때문에 def dfs(start): global cnt visited[start] =1 # 1번 컴퓨터가 바이러스에 걸리게 되면 for i in graph[start]:# 1번 정점과 연결된 정점들에 방문을 해본다 방문 된 곳인지 if visited[i]==0: dfs(i) cnt+=1 dfs(1) print(cnt)
def dfs(x,y): # 만약 두 개의 ‘-’가 인접해 있고, 같은 행에 있다면, 두 개는 같은 나무 판자이다. if graph[x][y] == '-': graph[x][y]=1 # 방문했으면 1로 표시 for yy in [1,-1]: ny=y+yy if 0
from collections import deque m,n =map(int, input().split()) matrix = [list(map(int, input().split())) for _ in range(n)] queue = deque([]) dx, dy = [-1,1,0,0],[0,0,-1,1] answer=0 # 익어있는 토마토 위치 for i in range(n): for j in range(m): if matrix[i][j]==1: queue.append([i,j]) while queue: x,y=queue.popleft() for i in range(4): nx, ny = dx[i]+x, dy[i]+y # 안익은 토마토 있으면 1더해줌(익힘), 그리고 그 위치를 큐에 저장 if 0
최소를 찾는 문제는 주로 BFS 알고리즘을 사용한다. BFS의 특징을 이용해 가장 빠르게 target이 되는 경우가 바로 가장 최소의 변환과정이 된다. from collections import deque def solution(begin, target, words): queue = deque() len_w = len(begin) # 단어 변환 가능한지 여부 return하는 함수 def transform(source, compare): diff =0 for i in range(len_w): if source[i]!=compare[i]: diff+=1 if diff==1: return True else : return False def bfs(): queue.append([begin, 0]) # 변환할 수..