728x90
[백준] 14503번: 로봇 청소기
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 풀이 문제에서 주어진 대로 구현하였습니다. ※ 현재 방향이 아닌 반시계 방향으로 90º 회전한 위치부터 확인해야 합니다. 코드 파이썬 import sys input = sys.stdin.readline def solution(x, y, d): answer = 0 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] visited..
[백준] 14502번: 연구소
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 풀이 BFS(너비 우선 탐색)과 백트래킹을 사용해 풀었습니다. 백트래킹으로 벽을 세우며 BFS로 빈 공간에 바이러스가 퍼져나가도록 해줍니다. 백트래킹을 사용해 벽을 세우고, 허물기 때문에 deepcopy()(깊은 복사)를 사용했습니다. 새로 퍼져나간 바이러스는 재확인하지 않도록 3으로 표시해주었습니다. 코드 파이썬 from collections import deque from copy import dee..
[백준] 2696번: 중앙값 구하기
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/2696 2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 크기 M(1 ≤ M ≤ 9999, M은 홀수)이 주어지고, 그 다음 줄부터 이 수열의 원소가 차례대로 주 www.acmicpc.net 풀이 두 개의 힙을 사용해 풀었습니다. left는 최대힙, right는 최소힙입니다. 중앙값을 찾는 과정은 아래와 같습니다. No. input left mid right 1 10 [1, 2, 3, 4] 5 [6, 7, 8, 9] 2 [1, 2, 3, 4] 5 [6, 7, 8, 9, 10] 3 [1, 2, 3, 4] 5 [6, 7, 8, 9, 10] 4 11 [1,..
[프로그래머스] [3차] 자동완성
·
🚩 코딩테스트/알고리즘
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17685 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Trie 알고리즘을 사용해 풀었습니다. 코드 파이썬 def solution(words): answer = 0 Trie = {} for word in words: cur_Trie = Trie for x in word: cur_Trie.setdefault(x, [0, {}]) cur_Trie[x][0] += 1 cur_Trie = cur_Trie[x][1] for word in words:..
[프로그래머스] 파괴되지 않은 건물
·
🚩 코딩테스트/알고리즘
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이 문제는 쉬워보이지만 효율성 테스트를 통과하기 어려운 문제입니다. 호율성 테스트 실패 코드 def solution(board, skill): n = len(board) m = len(board[0]) answer = n * m for type, r1, c1, r2, c2, degree in skill: for i in range(r1, r2+1): for j in range(c1, c..
[프로그래머스] [PCCP 모의고사 #2] 보물 지도
·
🚩 코딩테스트/알고리즘
문제 https://school.programmers.co.kr/learn/courses/15009/lessons/121690 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 BFS(넓이 우선 탐색) 사용해 풀었습니다. 큐에는 (x 좌표, y 좌표, 신발 사용 여부)를 저장합니다. visited는 3차원 배열로, 인덱스별로 [x 좌표][y 좌표][신발 사용 여부]를 의미하며 이미 지나간 자리인지 체크합니다. 4 방향을 모두 확인하며 아직 지나가지 않은 자리면서 함정이 아니라면 큐에 다음 자리를 추가합니다. 신비로운 신발을 아직 사용하지 않았다면 두 칸..
728x90
딩딩크롱
'🚩 코딩테스트/알고리즘' 카테고리의 글 목록 (4 Page)