백준 시리즈를 시작한 계기는 최근에 전에 풀었던 문제를 다시 마주친 계기가 있었는데,문제를 푼 기억이 없어서 그때 당시에 이 문제를 해결하기 위해 무슨 생각을 했는지, 어떻게 접근했는지 기록을 남기기 위해서 이 시리즈를 시작하게 되었다.백준 시리즈 start ~!
왼쪽에 n개의 사이트가 있고 m개의 사이트가 있다고 가정해봤을때n의 입장에선 m개를 선택할수 있고, n+1 입장에선 m-1개를 선택할수 있다. (m-1 개를 선택하는 이유는 m개를 선택하면 처음 선택한 사이트랑 중복이 일어날수 있기 때문)따라서 n에서 m개를 선택하는
우리가 해당 수의 약수를 구할때 작은 수 부터 차례대로 짝을 지어서 약수를 구할것이다. 이런 점을 생각해 입력 받은 수를 배열에 저장해 준 후 정렬을 시켜 배열의 크기가 1이면 해당 수를 2번 곱해 주었고, 배열의 크기가 1이상이면 배열의 첫번째 요소와 마지막 요소를
enter이 입력되고 다음 enter이 입력 되기 전 까지 한번 입력한 사람의 기록은 중복 저장 할 필요가 없기 때문에 set를 사용 해야겠다고 생각했다.만약 enter이 입력되면 현재 set에 있는 길이를 변수에 저장하고 set를 초기화 해주었고 enter이 아니라
총총이와 총총이와 만난 사람 만난 사람의 사람 쭉쭉쭉쭉 계산해서 더해주면 된다고 생각했다.중복이 되면 안되니까 set를 이용했다.set로 총총이를 만난 사람들과 총총이를 set에 추가해주고새로운 값들이 입력 되었을때 set에 추가되어 있는 사람과 없는 사람이면 set에
이 문제는 문제에 풀이 과정이 다 나와있어서 문제에 나와 있는 대로 코딩을 했다.산술평균중앙값정렬 해서 가운데 값을 찾았고최빈값요소 개수를 count 해주는 counter 모듈을 이용했다.최대 최소 차이처음에 이렇게 풀었는데 오답이 나왔다.최빈값 구하는 곳에서 문제를
문제 접근 방식 문제의 조건에 맞게 조건식을 사용해서 시도를 해봤다. 문제 풀이 1 다 푼건 아니고 이렇게 풀다가 이게 맞나 싶어서 고민 좀 하다가 다른 방법이 생각이 나지 않아 다른 사람들은 어떻게 풀었나 검색을 해봤다. 다른 사람들이 푼 방식을 보니까 sor
재귀 연습할겸 재귀를 이용해 풀 예정이다.피보나치 수열의 점화식은F(n) = F(n-1) + F(n-2)
동일한 간격으로 나무를 심어줘야 해서 그 도로(배열) 앞의 서로 인접한 값들의 차이를 구하고 그 차이로 나온 값들에서 공통된 가장 큰 약수 즉 최대공약수의 값으로 나무를 심어주면된다1) 입력 받은 배열의 앞의 요소와 뒤의 요소의 차이를 새로운 배열에 담아준다2) 최대공
문제 접근 방법 해당 자리에 올 수 있는 수가 k개 만큼 다 올 수 있어 중복순열을 사용했다. 문제 풀이 어려웠던 점 파이썬 itertools에서 중복 순열을 구해주는 product를 사용했는데 product는 튜플로 리턴을 해준다. 리턴 받은 튜플에 있는 요소를
첫번째 조건문에서 처음 가격이 가장 싼 가격이면 처음 가격 \* 길이의 합 으로 계산후 프로그램을 종료 했다.처음 가격이 젤 싼 가격이 아닐 시에 다음 도시 까지 이동하려면 처음 가격이 가장 비싸더라도 무조건 기름을 넣어야 하기 때문에 다음도시 까지 이동 할 수 있게
누적 합 형식으로 배열을 정렬한 후 앞의 결과와 다음 요소의 합을 더하며 선형적으로 진행하였다.하지만 첫번째 조건문 부터 틀린게길이가 1이면 비교할 대상이 없어 해당 요소를 출력하는게 아니라 0을 출력해야 한다. (비교할 대상이 없기 때문)else 문에선 차례대로 계산
처음엔 부분집합으로 시도를 하려고 했다하지만 부분집합은 2^nn = 1002^100 = 절대 불가능 하다무게당 가격이 가장 비싼걸 넣어주려고 생각했다.입력이(6,13), (4,8), (3,6), (5,12)무게 / 가격은 각각2.17 2 2 2.4(5.12)
보석 배열은 무게가 낮 - > 높 으로 정렬함배낭 배열은 용량이 낮 -> 높 으로 정렬PriorityQueue 생성해서 해당 하는 가방에 들어올 수 있는 보석을 pq 에 넣고가장 앞에 있는 요소를 뽑아서 ret변수에 누적으로 더해줌pq는 가격 순으로 정렬하고 가격이 같
문제 해석부터 하면 미래에 가격도 알고 있다는 전제하에 순이익이 최대로 될때 순이익을 구하는 문제다.가격이 들어있는 배열에 최대값을 찾고 앞에서 부터 최대값을 만나기 전까지 이익 변수에 최대값 - 현재 값 을 해주면서 선형적으로 계산을 해주고 해당 계산이 끝나면 pop
문제 접근 방법 스토쿠를 검증하는 문제로 가로, 세로 3*3 크기의 각 합이 1~9까지 다 더한 45면 참이다 라고 처음 생각했다. 문제 풀이 이렇게 풀었는데 계속 오류가 떠서 생각해보니 내 알고리즘상 무작위 숫자를 넣어서 45만 되면 pass가 되기 때문에 잘
https://www.acmicpc.net/problem/1253타겟일 될 숫자를 하나 정한다맨 앞, 맨뒤 설정합이 더 크면 뒤를 한칸 앞으로, 합이 더 작으면 앞을 한칸 뒤로 보냄틀렸습니다.목표 숫자를 3번째 숫자부터 하게 설정 해놨는데, 동일한 숫자가 여러