전체 글

흔적을 남기기 위한 부던한 노력들
알고리즘/백준

[11659] 구간 합 구하기 4 (Python)

문제 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 틀린 코드 N,M = map(int,input().split()) num_list = [-1]+list(map(int,input().split())) for _ in range(M): start_index,end_index = map(int,input().split()) print(sum(num_list[start_index:end_index+1])) 문제 풀이 처음 이 문제를 단순 구현으로 생각해서 시간초과가 났었습니다. 정수 범위를..

알고리즘/백준

[11502] 세 개의 소수 문제 (Python)

문제 11502번: 세 개의 소수 문제 정수론(수학)에서, 세 개의 소수 문제(3-primes problem) 는 다음과 같은 추측을 말한다. '5보다 큰 임의의 홀수는 정확히 세 개의 소수들의 합으로 나타낼 수 있다. 물론 하나의 소수를 여러 번 더할 www.acmicpc.net 풀이 이 문제는 여러 가지 테스트케이스에서 어떤 수가 주어졌을 때, 세 개의 소수의 합으로 나타낼 수 있는지를 확인하는 문제입니다. 그렇다면 우선 소수를 걸러내는 에라토스테네스의 체가 필요할 것이며, 매 테스트 케이스마다 소수를 새로 구하지 않고 한 번만 계산하는 것이 좋아 보입니다. 소수들을 찾았으면 소수들의 합으로 나타내야 합니다. 이는 세번의 for문으로도 충분히 풀리게 되는데 그 이유는 1000까지의 소수의 개수가 16..

알고리즘/백준

[1912] 연속합 (Python)

1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 이 문제는 연속된 순열의 합 중 가장 큰 수를 구하는 것입니다. 해당 문제를 접근하기 위해 다음과 같이 가정했습니다. 1. 어떤 한 부분의 연속된 합을 구할 때 앞서 선행된 계산들이 완료되었다. 2. 해당 부분의 가장 긴 연속된 합은 (앞서 선행된 계산 + 현재의 값)과 (현재의 값)을 비교하여 더 큰 값이다. 이 조건들이 만족된다면 가장 큰 연속 합을 구할 수 있습니다. 정답 코드 # 다이나믹 프로그래밍으로 해당 위치까지 도착했을 때의 가장 큰 합을 저장한다. n ..

알고리즘/백준

[1904] 01타일 (Python)

1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 처음 접근 할 때 N의 크기를 확인하지 않고 순열을 구현하여 해당 순열의 길이만큼을 출력하는 코드로 구현하려 했습니다. 오답코드 # 00과 1의 조합으로 얼마나 많은 경우의 수가 나올 수 있는가 from itertools import permutations N = int(input()) count_00 = N//2 count_1 = N%2 count_possible = 0 for i in range(count_00+1): tmp = list(0 for _ in ran..

알고리즘/백준

[2563] 색종이 (Python)

간단하게 생각하다 틀린 문제입니다. 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 처음 접근은 단순히 겹치는 구간을 N*100에서 빼면 된다고 생각했습니다. 틀린 코드 #색종이의 크기는 모두 10*10이다 #겹치는 부분을 빼면 될 것. N = int(input()) position_arr = [] for _ in range(N): position_arr.append(list(map(int,input().split()))) # position_arr.sort() # print(position_arr) area =..

일기

티스토리 시작

개발 지망생으로서 블로그를 만들어봐야겠다고 생각했었습니다. 졸업을 앞두고 있으므로 개인적인 동기 부여로 개발 일지를 쓰려고 합니다. 매일 꾸준히 글을 올리는 것을 목표로 하겠습니다.

DeveloperJason
개발 지망생 L