Algorithm(71)
-
백준 [13549: 숨바꼭질3]
문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.풀이bfs로 풀었다.처음에는 별 생각 없이 *2의 경우를 마지막에 계산했으나 틀렸..
2024.08.09 -
백준 [20922: 겹치는 건 싫어]
문제홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 K개 이하로 들어 있는 최장 연속 부분 수열의 길이를 구하려고 한다. 100,000 이하의 양의 정수로 이루어진 길이가 N인 수열이 주어진다. 이 수열에서 같은 정수를 K개 이하로 포함한 최장 연속 부분 수열의 길이를 구하는 프로그램을 작성해보자.입력첫째 줄에 정수 N(1≤N≤200,000)과 K(1≤K≤100)가 주어진다.둘째 줄에는 a1,a2,...an이 주어진다 (1≤ai≤100,000)출력조건을 만족하는 최장 연속 부분 수열의 길이를 출력한다. 풀이문제를 이해하지 못해서 전에 못 풀었었는데 최근 알고리즘 문제를 거의 안 풀었어서 새로운 마음으로 다시 ..
2024.08.05 -
SWEA [1206. [S/W 문제해결 기본] 1일차 - View]
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이건물의 양옆, 총 4개만 비교하면 되기 때문에 max() 함수를 사용해도 괜찮을 것 같았다.실행 시간은 133ms.for i in range(1, 11): n = int(input()) li = list(map(int, input().split())) k = 0 for j in range(2, n-2): m = max(li[j-2:j]+li[j+1:j+3]) ..
2024.05.16 -
SWEA [20728. 공평한 분배 2]
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AY6cg0MKeVkDFAXt SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이실행시간 140ms.for i in range(1, int(input())+1): n, k = map(int, input().split()) li = sorted(list(map(int, input().split()))) if n == k: print(f'#{i} {li[-1]-li[0]}') continue m = 1000000000 for ..
2024.05.16 -
SWEA [1859. 백만 장자 프로젝트]
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LrsUaDxcDFAXc SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이백준이었나 어디서 봤던 문제 같다.다행히 학습 성과가 있는지 전보다 빨리 해결할 수 있었다.from collections import dequefor i in range(1, int(input())+1): n = int(input()) li = list(map(int, input().split())) m = max(li) li = deque(li) result = 0 ..
2024.05.16 -
프로그래머스 [연속된 부분 수열의 합]
[연속된 부분 수열의 합] https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 시간 초과. 모든 인덱스에서 k가 되는 부분 수열을 찾고 해당 수열의 길이보다 짧은 부분 수열을 찾아내는 구조다. 중복되는 연산이 발생해서 시간 초과가 발생한 듯하다. def solution(sequence, k): answer = [-1, -1] len_seq = len(sequence) min_size = k+1 for i in range(len_seq): c..
2024.04.17