분류 전체보기
-
BOJ 9095 1,2,3 더하기 python코딩테스트 2024. 4. 16. 11:45
이 문제를 보고 떠올렸던 생각은 1. 메모리가 낭낭하다 2. 어렸을 때 많이 했던 점화식 만들기와 형태가 유사하다 -> dp로 풀어야겠다! 였는데 사실, 테스트케이스를 보고 먼저 점화식을 예상한 다음에 이유를 생각해봤다. 이러면 안 된다! 1 -> 1 (1) 2 -> 2 (1+1, 2) 3 -> 4 (1+1+1, 2+1, 1+2, 3) 4 -> 7 (위 사진 참조) ... 어라? An = An-1 + An-2 + An-3 아냐? -> 맞다. 예를 들어, 10을 만들기 위해서는 7을 만드는 가지수 + 8을 만드는 가지수 + 9를 만드는 가지수 를 더하면 된다. 사진에 있는 4를 만들기 위해서, 마지막 수를 제외한 앞 수들의 합이 같은 수들로 묶어보면 1 1 2 1+1 2 3 1+1+1 1+2 2+1 3 위..
-
BOJ 1463 1로 만들기 python코딩테스트 2024. 4. 15. 21:05
https://www.acmicpc.net/problem/1463 dp(dynamic programming, 동적 계획법) 문제에 입문하면서 풀어본 첫 문제! 동적 계획법이란 -> 메모리를 조금 더 써서 속도를 크게 향상시키는 풀이법! 동적 계획법은 Top down 방식과 Bottom Up 방식으로 나뉜다. 이 중 Top down 방식은 재귀적으로 구현하기에 시스템의 스택 부하를 고려하면... 조금 부담스러울 수 있다. 그래서 Bottom Up 방식이 권장된다. 그리고 구현도 더 쉽다. 동적 계획법을 쓰는 상황 -> 문제를 봤는데, 큰 문제를 작은 문제들로 쪼갤 수 있으며 작은 문제의 답을 반복적으로 사용할 수 있으면 동적계획법!! 또한 동적 계획법으로 문제를 해결할 때는 각 항들의 관계에 대한 점화식을..
-
BOJ 1064 - 평행사변형코딩테스트 2023. 3. 19. 20:48
https://www.acmicpc.net/problem/1064 약간의 삽질을 했지만 열심히 풀었던 문제입니다. 왠지 그러고 싶어서 모듈화를 열심히 해서 풀어봤어요. def get_input(): plist = list(map(int, input().split())) A = [plist[0], plist[1]] B = [plist[2], plist[3]] C = [plist[4], plist[5]] points = [A, B, C] return points def get_slope(p1, p2): if p2[0] - p1[0] == 0: slope = "inf" return slope else: slope = (p2[1] - p1[1]) / (p2[0]-p1[0]) return slope def che..
-
BOJ 1874 - 스택 수열코딩테스트 2023. 3. 19. 20:30
https://www.acmicpc.net/problem/1874 스택의 개념이 조금 들어간 재밌는 문제가 보여서 풀어봤습니다. 난이도는 실버3 이었던 것 같구요. 파이썬으로 간단하게 해결했습니다. 파이썬이라 따로 STL로 스택 컨테이너를 만들 필요가 없더라구요. 간단하게 입출력을 받고 스택 역할을 할 리스트와 결과를 담을 리스트를 초기화해주었습니다. 처음에는 이 수열을 만들 수 있는지 없는지를 검사하는 함수를 먼저 짜려고 했다가, 그럴 필요 없이 그냥 반복문에서 스택의 마지막 원소와 만들고자 하는 수열을 계속 비교해주면 되겠더라구요. 이 문제를 풀면서 확실하게 배운 점은 다음과 같습니다. 1. 조건문을 작성할 때 조건들의 순서를 잘 고려해주기. 처음 while문의 조건을 작성할 때, while stac..
-
숫자 문자열과 영단어코딩테스트 2023. 3. 11. 19:01
https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본격적으로 카카오 인턴십 문제를 조금 풀어보겠습니다. 귀여운 프로도와 네오가 게임을 하네요. 알파벳과 숫자가 섞인 입력값이 들어오면, 출력값으로 알맞은 숫자 문자열이 나오게끔 하는 문제입니다. 처음에 제가 작성한 코드를 볼게요. 우선 문자열 중 일부를 대체할 때 replace라는 메소드를 쓰기로 했습니다. 이 문제를 풀면서 챙겨야할 가장 중요한 개념은요, "python에서 문자열은 immutabl..
-
옹알이(1)코딩테스트 2023. 3. 11. 13:02
https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 문제는 프로그래머스의 코딩테스트 입문으로 갑니다. 문제 내용은 위와 같구요, 보고 약간 생각해본 결과 입력값을 읽어들이면서 바로바로 처리하는 Decoder 느낌으로 문제를 해결하면 좋겠다는 생각이 들었습니다. 언어는 python3입니다. 코드입니다. 우선 아기가 말할 수 있는 옹알이들이 담긴 babbling_list를 만들어주고요. 파라미터로 받은 문자열 리스트에서 각각의 원소가 되는 단어들..
-
최댓값 만들기 1카테고리 없음 2023. 3. 10. 14:03
https://school.programmers.co.kr/learn/courses/30/lessons/120847 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단한 문제들을 최대한 풀면서 python 몸풀기를 해봅시다. 첫 문제입니다. 이 문제를 풀 때 C++에 익숙해져 있다 보니 이중 반복문 설정이 조금 버벅거리더라구요. for(int i = 0; i < numbers.length(); i++) { for(int j = i+1; j < numbers.length(); j++) { //codes } } 위와 같은 C++ 코드를 Python 코드로 변..