728x90
[백준] 1806번: 부분합
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 풀이 투 포인터를 사용해 풀었습니다. left, right을 0으로 초기화합니다. right가 0부터 N까지 아래 작업을 반복합니다. 누적합(total)이 S 미만이면 누적합에 nums[right]를 더합니다. 누적합이 S 이상이면 미만이 될 때까지 아래 작업을 반복합니다. 최소 길이를 저장합니다. 누적합에서 num[left]를 뺍니다. left를 1 증가시킵니다. right를..
[프로그래머스] 크레인 인형뽑기 게임
·
🚩 코딩테스트/알고리즘
문제 https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 스택을 사용해 바구니의 맨 마지막에 크레인이 집은 인형과 같은 인형이 담겨 있다면 pop()을 해줍니다. 코드 파이썬 def solution(board, moves): answer = 0 n = len(board) basket = [] for move in moves: for i in range(n): if board[i][move-1] != 0: if basket and board[i..
[백준] 9019번: DSLR
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 풀이 BFS(너비 우선 탐색)를 사용해 풀었습니다. 큐에 (현재 숫자, 명령어)를 저장합니다. 시간 초과가 발생하지 않게 check를 사용해 이전에 이미 확인한 숫자면 다시 확인하지 않도록 합니다. ※ 처음에 L, R 연산을 큐를 사용해 이동시켰더니 시간 초과가 발생하여 단순 계산으로 바꿨더니 해결되었습니다. 코드 파이썬 from collections import deque im..
[백준] 13549번: 숨바꼭질 3
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 BFS(너비 우선 탐색)를 사용해 풀었습니다. 범위 내에 이동할 수 있으면 방문 처리와 큐에 (이동 위치, 시간)을 추가합니다. ※ 두 배 이동한 경우를 우선으로 확인해야 하므로 append()가 아닌 appendleft()를 해줘야 합니다. ※ 앞서 방문한 위치는 다시 방문하지 않으므로 한 칸 이동한 경우보다 두 배 이동한 경우를 먼저 확인해야 합니다..
[백준] 1525번: 퍼즐
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/1525 1525번: 퍼즐 세 줄에 걸쳐서 표에 채워져 있는 아홉 개의 수가 주어진다. 한 줄에 세 개의 수가 주어지며, 빈 칸은 0으로 나타낸다. www.acmicpc.net 풀이 BFS(너비 우선 탐색)를 사용해 풀었습니다. 2차원으로 되어있는 배열을 문자열로 바꿔줍니다. ex) [[1, 2, 3], [4, 5, 6], [7, 8, 9]] ➔ "123456789" 행과 열은 구하고자 하는 문자의 문자열 인덱스(pos)를 구해 행은 pos // 3, 열은 pos % 3으로 구합니다. count 해시맵({문자열: 이동 횟수})을 사용해 이미 나온 문자열인지 확인하고 이동 횟수를 저장합니다. ※ 2차원 배열 ➔ 문자열과 해시맵이 중요 포인트입니..
[백준] 2251번: 물통
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/2251 2251번: 물통 각각 부피가 A, B, C(1≤A, B, C≤200) 리터인 세 개의 물통이 있다. 처음에는 앞의 두 물통은 비어 있고, 세 번째 물통은 가득(C 리터) 차 있다. 이제 어떤 물통에 들어있는 물을 다른 물통으로 쏟아 부 www.acmicpc.net 풀이 BFS(너비 우선 탐색)를 사용해 풀었습니다. 총 6가지의 가능한 경우의 수를 모두 확인합니다. check 배열은 중복을 방지하기 위해 A 물통과 B 물통에 담겨 있는 물양을 체크합니다. C 물통에 담겨 있는 물의 양은 C 물통의 부피 - (A 물통의 물양 + B 물통의 물양)이 됩니다. 코드 파이썬 from collections import deque import ..
728x90
딩딩크롱
'🚩 코딩테스트/알고리즘' 카테고리의 글 목록 (3 Page)