일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 투포인터
- 2018 KAKAO BLIND RECRUITMENT
- 로봇 청소기
- 2019 KAKAO BLIND RECRUITMENT
- 조합
- 우선순위큐
- 브루트포스
- 투 포인터
- 트라이
- 플로이드와샬
- 2021 KAKAO BLIND RECRUITMENT
- GIT
- 2020 KAKAO BLIND RECRUITMENT
- 구현
- 다익스트라
- 플로이드 와샬
- 프로그래머스
- 스택
- 백트래킹
- 2020 카카오 인턴십
- Spring
- 비트마스킹
- 시뮬레이션
- 백준
- 최소 신장 트리
- SWEA
- 크루스칼
- 이분탐색
- 파이썬
- BFS
- Today
- Total
목sssssss록알고리즘/SWEA (6)
개발조아
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWHPkqBqAEsDFAUn SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제를 보자마자 아 이거 조합으로 해서 set으로 중복제거한 다음 길이 출력하면 되겠다 생각하고 조합으로 풀었더니 시간초과 나서 틀렸었다. 그냥 100C50만 생각해봐도 엄청 큰 숫자인데 귀찮다고 생각안하고 풀어버렸다. 풀이는 앞에서 나온 합을 기록하여 현재 숫자와 더해 가는 방식으로 했다. 1번 테스트케이스를 예로 들어 설명하겠다. 방문 배열에 해당 숫자가 나온다면 표시한다. 0의 ..
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7I5fgqEogDFAXB SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 모든 점에서 BFS를 돌리는데 이때 방문체크는 하지 않는다. BFS를 돌리면서 각점의 숫자들을 이어붙여서 새로운 숫자를 만들고 7자리가 됐을 때 저장한다. 이때 같은 숫자는 체크하면 안되므로 set을 이용하여 중복제거를 했고 마지막에 set의 길이를 출력한다. from collections import deque dx = [-1,1,0,0] dy = [0,0,-1,1] tc = int..
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14vXUqAGMCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 그냥 단순한 BFS 문제이다. from collections import deque dx = [-1,1,0,0] dy = [0,0,-1,1] visited = [[0]*16 for _ in range(16)] visited_num = 0 def solv(t): global board input() board = [] sx=sy=-1 for x in range(16): board.app..
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15QRX6APsCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 시작점에서 출발하여 가중치인 복구 시간을 가장 적게 하면서 도착지로 이동하는 문제이다. 우선순위 큐를 사용하여 BFS로 구현했다. 우선순위 큐는 heapq 패키지로 사용하여 복구시간을 최우선기준으로 잡고 했다. import heapq dx = [-1,1,0,0] dy = [0,0,-1,1] tc = int(input()) visited = [[0]*100 for _ in range(1..
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 목적지에서 출발하여 위로 올라가면서 맨 윗줄에 도달했을 때의 y 좌표를 출력하면 된다. 올라가면서 좌우 확인하고 다리가 있다면 그 방향으로 0이 나올때 까지 쭉 확인하고 다시 위로 올라가면 된다. dx = [0, -1, 0] dy = [-1, 0, 1] def solv(t): global board input() board = [list(map(int, input().split()))..
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWJHmLraeEwDFAUH& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 4방향으로 BFS 돌려서 풀었다. 최대 숫자는 10000이므로 2차원 배열로 했을데 141x141이면 다 채울수 있다. 1 2 3 4 5 6 7 8 9 10 .... 이런식으로 번호 넣은 배열 만들면서 각 칸의 번호가 몇행 몇열에 저장되어 있는지도 따로 배열로 저장했다. 이동은 6가지 방향으로 가능하지만 숫자가 작은곳에서 시작한다면 위쪽은 볼 필요가 없어서 4방향만 확인하면 된다. ..