본문 바로가기
728x90

TIL - 프로그래밍/Python 알고리즘198

[백준] 11403. 경로 찾기 - Python https://www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net from sys import stdin input = stdin.readline # 정점의 개수 N = int(input()) # 인접 행렬 adj = [list(map(int,input().split())) for _ in range(N)] # a -> b and b -> c == a -> c for b in range(N): for a in range(N): for c in range(N): if adj[a][b] and adj[b][.. 2022. 7. 22.
[백준] 5014. 스타트링크 - Python https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 생각 최단 경로를 구하는 것이므로 bfs 코드 from sys import stdin from collections import deque input = stdin.readline F,S,G,U,D = map(int,input().split()) # 총 F층인 건물, S층에서 G층 가기 # 방문 표시 visited = [0]*(F+1) def bfs(now): global visited visited[now].. 2022. 7. 13.
[백준] 14501. 퇴사 - Python https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 생각 DP 거꾸로 확인 근무 마지막날부터 해당 상담을 진행 시 근무 종료 전까지 마무리 가능한 경우 상담을 진행 상담을 진행하지 않음 해당 상담을 진행 시 근무 종료 전까지 마무리가 불가능한 경우 다음 날 이익이랑 같음 코드 from sys import stdin input = stdin.readline # 근무 일 N = int(input()) # 상담 [걸리는 시간, 받을 수 있는 금액] counsel = [list(map(int,input().split())) for _ in range(N)] # 각 근무일까지 얻을 수 있는 최.. 2022. 7. 3.
[백준] 2667. 단지번호붙이기 - Python https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 코드1 - DFS from sys import stdin input = stdin.readline # 지도의 크기 N = int(input()) arr = [list(map(int,input().rstrip())) for _ in range(N)] def dfs(r,c): stack = [(r,c)] arr[r][c] = 0 # 이번 단지내 집의 수 cnt = 1 while stack: cr,cc .. 2022. 7. 2.
[프로그래머스] Lv.2 프렌즈4블록 - Python https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 생각 위에서 떨어지는게 아니라 오른쪽에서 왼쪽으로 떨어지도록 돌리기 같은 열에서 위에서부터 지우는 것보다 같은 행에서 지우는게 더 편할 것 같아서 이번 turn에 터트릴 수 있는 위치 set에 담기 중복을 제거하기 위해 터트릴 수 있는 위치 0으로 바꾸고 왼쪽으로 떨어지도록 하기 A C 0 0 C -> A C C 0 0 으로 바꾸기 터트릴.. 2022. 6. 30.
[프로그래머스] Lv.1 비밀지도 - Python https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 생각 정수를 2진수로 바꾸기 : bin(x) 2진수 맨앞이 0인 경우들을 생각해서 n자리 0으로 채우기 : .zfill(n) 둘 다 0이면 빈 칸 아니면 벽 코드 def solution(n, arr1, arr2): answer = [] for i in range(n): # 2진수로 바꾸기 / n자리 0으로 채우기 a = bin(arr1[i])[2:].zf.. 2022. 6. 30.
반응형