728x90
[백준] 14500번: 테트로미노
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이 [수정 전] 브루트포스 알고리즘을 사용해 풀었습니다. tetrominos에 모든 테트로미노에 대해 왼쪽 위 인덱스(x, y)를 기준으로 더할 값을 저장합니다. 모든 테트로미노를 모든 위치에 대조해보며 더 높은 값을 계속해서 업데이트합니다. [수정 후] 백트래킹을 사용해 풀었습니다. 오른쪽, 왼쪽, 아래로 뻗어가면서 테트로미노(4)가 완성되면 더 높은 값을 비교해 업데이트합니다. L이 1..
[백준] 16586번: 치킨 배달
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 풀이 백트래킹을 사용해 풀었습니다. home에 집 위치를, chicken에 치킨집 위치를 저장합니다. DFS를 사용해 M개의 치킨집을 선택해 도시의 치킨 거리를 구합니다. ※ 치킨집은 많을수록 최소 거리에 유리합니다. 코드 파이썬 import sys input = sys.stdin.readline INF = sys.maxsize N, M = map(int, input()..
[백준] 10986번: 나머지 합
·
🚩 코딩테스트/알고리즘
문제 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 풀이 누적합을 사용해 풀었습니다. ramainder에 누적합의 나머지 개수를 저장합니다. \(_{i}{C}_{2}\) 를 계산해 answer에 더합니다. 코드 파이썬 import sys input = sys.stdin.readline N, M = map(int, input().split()) A = list(map(int, input().spl..
[백준] 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..
728x90
딩딩크롱
'코딩테스트' 태그의 글 목록 (9 Page)