반응형

Python 204

[Python] 프로그래머스. 2020 카카오 인턴 - 수식 최대화 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 � programmers.co.kr 이 문제도 시험 당시에는 제대로 못 풀었었다. 재귀를 활용한 분할정복으로 접근해야 하는 문제. 1. 문자열을 우선순위 문자열을 기준으로 분리한다. 2. 분리한 문자열을 다음 우선순위 문자열을 기준으로 분리한다. 3. 가장 마지막 우선순위 문자열에 도착했으면, 연산한 결과를 문자열 형태로 리턴한다. 100-200*300-500+20 이고 연산 우선순위가 (*..

[Python] 프로그래머스. 2020 카카오 인턴 - 보석 쇼핑 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 실제 테스트할 때 효율성을 끝까지 해결 못 했던 문제. 처음 접근할 때는 '이분탐색으로 window 사이즈 탐색' + '해당 window size가 조건을 충족하는지 확인'하는 방식으로 풀었는데, 다시 풀면서 접근해보니 리스트 슬라이싱을 쓰면 시간초과가 반드시 등장했다. 정답은 투 포인터를 활용한 탐색.

[Python] 백준 11066. 파일 합치기

https://www.acmicpc.net/problem/11066 11066번: 파일 합치기 문제 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 �� www.acmicpc.net 문제 자체도 난해한데, Python3의 느린 연산속도 때문에 시간초과까지 겹쳐서 푸는 데 정말 오래 걸렸다. 이 풀이는 PyPy3으로만 통과하며, Python3으로는 시간초과가 난다. C++이나 Java의 로직으로는 통과하지만... 전제: '인접한 페이지'끼리만 합칠 수 있다. 문제의 예시라면, C2와 C4를 바로 합치는 건 불가능하고, C2 + (C3 + C4) 또는 (C2 + C3..

[Python] LeetCode 42. Trapping Rain Water

https://leetcode.com/problems/trapping-rain-water/ Trapping Rain Water - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 왼쪽 끝 / 오른쪽 끝에서부터 각각 가운데로 이동하면서 "최대 높이 - 현재 높이" 순으로 값을 더하는 식으로 풀 수 있는 문제. 왼쪽의 최대높이와 오른쪽의 최대높이를 비교해서, 더 작은 쪽을 가운데로 이동시킨다. cf. 이 풀이는 아래 책에서 제공한 코드를 참고했습니다. 파이썬 알고리즘..

[Python] 프로그래머스. 가장 긴 팰린드롬 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr 홀수 / 짝수 두 개의 window를 기준으로 판별한다.

Python으로 Praat 활용하기 - parselmouth Package 사용법

Praat 프로그램의 Python Wrapper 패키지 사용법을 찾아보다가, 공식 docs에도 예시코드가 거의 없고 사용법 포스팅도 거의 없길래 직접 남기는 포스트. 2020.04 ~ 2020.07 글로벌경영학과 김영한 교수님 Research Assistant 작업. 교수님의 연구 어시스턴스로 'CEO의 음성 데이터와 해당 기업 주가와의 상관관계'를 조사하는 일이 필요했다. 800여 개의 CEO 인터뷰 음성파일 (확장자 wav)에서 Formant 0 ~ Formant 5까지의 값을 추출하는 작업을 맡았다. 0.1초 단위로 Formant값을 추출해서 각 음성별로 csv 파일을 생성한 뒤, 얻은 결과를 토대로 분석을 진행해야 했다. 음성 파일에서 Pitch나 Formant를 추출하는 프로그램으로는 Praat..

[Python] 백준 3109. 빵집

https://www.acmicpc.net/problem/3109 3109번: 빵집 문제 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴� www.acmicpc.net 그리디 알고리즘 + BFS 문제. 최대한 많은 가스관을 배치하기 위해서는, 가급적이면 가스관이 우상향이 되어야 한다. 따라서 우상향 / 직진 / 우하향 순서대로 파이프를 설치할 수 있는지 DFS로 확인해야 한다.

[Python] 백준 2458. 키 순서

https://www.acmicpc.net/problem/2458 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net 이전에 프로그래머스에서 풀었던 것과 유사한 문제. 자신의 키가 얼마인지 알기 위해서는, "자신보다 키 큰 학생의 수 + 자신보다 키 작은 학생의 수 == 전체 학생수 -1" 여야 한다. 또한 학생 i보다 키 작은 학생 -> 학생 i보다 키 큰 학생보다는 무조건 작다. 학생 i보다 키 큰 학생 -> 학생 i보다 키 작은 학생보다는 무조건 크다. 두 가지 조건을 토대로 구현하는 문제.

[Python] 백준 9461. 파도반 수열

https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 � www.acmicpc.net DP문제. 그림 덕분에 쉽게 점화식이 유추 가능하다. n번째 삼각형 = n-1번째 삼각형 + n-5번째 삼각형이므로 table[n] = table[n-1] + table[n-5] 형태의 함수를 구현하면 된다.

반응형