2025/03/20 6

[백준/Python] 9095번 : 1, 2, 3 더하기

문제https://www.acmicpc.net/problem/9095n이 입력되면 1, 2, 3만으로 덧셈을 구할 수 있는 방법의 수를 출력한다. 나의 풀이재귀를 사용한 방법이다.1 2 3 중 하나를 선택하는 걸 반복하면서 sum에 더해주다가 sum이 n 되면 cnt를 올려준다.import syst = int(sys.stdin.readline())for i in range(t): N = int(sys.stdin.readline()) cnt = 0 def recur(n, sum_): global cnt if n 다른 풀이점화식과 초기값을 사용해 푼 방법이다. f(n) = f(n-3) + f(n-2) + f(n-1)f(1) = 1 (1)f(2) = 2 (1+1, 2)..

정글/알고리즘 2025.03.20

[백준/Python] 1914 : 하노이 탑

문제https://www.acmicpc.net/problem/1914기둥 1, 2, 3이 있고 N개의 원판이 기둥 1에 크기가 큰 순서대로 쌓여있다.기둥 1의 모든 원판을 기둥 3으로 옮기는 최소 횟수를 구하라.단, 기둥 위에서는 반드시 큰 원판이 아래에 위치해야 한다.풀이원판 이동 출력하기이 문제는 절차지향적 사고로 풀리지 않는다. 귀납적으로 생각해야 한다.1번 원판을 기둥 3으로 옮김 -> 2번 원판을 기둥 2로 옮김 -> ... 이런 절차를 정하는 게 아니라 k번 원판의 움직임이 어떨 것인지 생각해야 한다. 즉 일반식을 도출해야 하는데일반식을 도출하는 방법은 가장 작은 크기의 경우를 시뮬레이션해보는 것이다. 원판 개수는 1~100이므로 가장 작은 경우부터 생각해보자. 원판이 기둥 1에 한 개 있는 ..

정글/알고리즘 2025.03.20

[백준/Python] 8958번 : OX퀴즈

문제https://www.acmicpc.net/problem/8958 나의 풀이나는 리스트를 순차적으로 탐색하면서 값이 O이면 cnt를 하나 올리고 X이면 cnt를 초기화하여 풀었다.import sys, math# 점수는 연속된 O의 개수# 테스트 케이스 받기# 각 번호의 점수가 몇 점인지 구하기# -> 만약 이전 채점 결과가 O였고 지금도 O라면 현재 점수는 이전 점수 +1# 모든 점수를 더한 후 출력하기t = int(input())for i in range(t): result = list(input()) score=0 total=0 for j in result: if j=='O': score+=1 total+=score ..

정글/알고리즘 2025.03.20

[정글/회고] 1주차 회고

아까 운영진 티타임에 갔다 왔다. 30명 가량의 우리반 사람들이 다 같이 모여 앉아서 한 주를 회고했다.벌써 1주차가 끝났다니..! 이번 주를 회고해보자 ~ 내가 이번 주에 가장 기억에 남았던 활동은 팀활동이다.거의 매일 정해진 시간에 두 세시간 가량 모여서 각자 푼 알고리즘 문제를 발표하고 컴퓨터 시스템 책을 읽었다. 우리 팀은 게더타운과 노션을 활용했다.스터디룸 모니터에 한 사람 pc만 연결하는 게 불편해서 게더타운에서 화면 공유를 하며 자신이 푼 코드를 설명했다. 셋 모두 파이썬으로 알고리즘을 푸는 게 처음이라서 간단한 입출력, 배열, 반복문, 조건문, 문자열 문제를 풀 때 서로 사용한 라이브러리가 달랐다. 그래서 어떤 방법이 더 성능이 좋은지, 차이점은 무엇인지 고민해볼 수 있었다.나 혼자 공부했..

정글/회고 2025.03.20

[백준/Python] 1182번 : 부분 수열의 합

오늘 시험에 나온 문제인데 45분을 투자했음에도 제 시간 안에 못 풀었다.재귀 탐색 아이디어는 맞았는데 종료 조건이 틀렸고 재귀 인자로 넘기는 값이 뭔지 정확하게 파악하지 못했고문제 조건을 제대로 고려하지 않았다. 문제 분석https://www.acmicpc.net/problem/11825 0 //N원소개수 S부분수열의 합-7 -3 -2 5 8 //수열 주어진 수열에서 부분 수열의 원소 개수 합이 S가 되는 경우가 몇 개인지 구하는 문제이다.위와 같이 주어진 경우 [-3, -2, 5] 한 가지 있으므로 답은 1 아이디어?부분 수열을 만들려면 N개의 원소 각각이 선택되거나 선택되지 않아야 한다.-> 두 가지 경우를 나누어 재귀 호출 오답노트틀린 코드 :numbers = [input받은 list]cnt = ..

정글/알고리즘 2025.03.20