자기계발
-
[백준] 24416. 알고리즘 수업 - 피보나치 수 1 (파이썬 python, pypy3)자기계발/Computer Science 2024. 1. 7. 13:10
다이나믹 프로그래밍 문제를 좀 더 풀어보고 싶어서 좀 더 어려운 문제를 풀어보았다. 문제 아래 의사 코드를 이용하여 n의 피보나치 수를 구할 경우 코드1 코드2 실행 횟수를 출력하자. 피보나치 수 재귀호출 의사 코드는 다음과 같다. fib(n) { if (n = 1 or n = 2) then return 1; # 코드1 else return (fib(n - 1) + fib(n - 2)); } 피보나치 수 동적 프로그래밍 의사 코드는 다음과 같다. fibonacci(n) { f[1]
-
[백준] 17202. 핸드폰 번호 궁합 (파이썬 python)자기계발/Computer Science 2023. 12. 30. 21:08
오늘 풀어본 문제는 '다이나믹 프로그래밍', 동적 계획법을 이용한 문제였다. 다이나믹 프로그래밍 문제는 저번 스터디에서 분명히 풀어봤었음에도 불구하고 파이썬으로 시도해 보니 느낌이 또 달랐다. 문제 어린시절 다들 한 번씩은 이름으로 궁합을 본 적이 있을 것이다. 이것과 비슷한 방식으로 중앙대학교에는 핸드폰 번호 궁합을 보는 것이 유행이라고 한다. 핸드폰 번호 궁합을 보기 위해서는 먼저 궁합을 보고 싶은 두 중앙대생 A와 B의 핸드폰 번호에서 맨 앞의 010과 "-"(하이픈)을 모두 제외한 후, A부터 시작하여 한 숫자씩 번갈아가면서 적는다. 그리고 인접한 두 숫자끼리 더한 값의 일의 자리를 두 숫자의 아래에 적어나가면서 마지막에 남는 숫자 2개로 궁합률을 구하게 된다. 예를 들어, 아래의 그림과 같이 A..
-
[LeetCode] 412. Fizz Buzz 풀이 (python)자기계발/Computer Science 2023. 12. 27. 15:06
문제 설명 n이라는 숫자가 주어진다. 그리고 우리는 문자열 배열을 결과값으로 리턴해야 한다. 여기서 1부터 n까지의 숫자 중에서 3,5로 나뉘는 숫자는 리스트의 i번째 요소에 "FizzBuzz"라는 문자열을 넣고, 3으로 나뉘는 숫자는 "Fizz", 5로 나뉘는 숫자는 "Buzz"를 넣는다. class Solution: def fizzBuzz(self, n: int) -> List[str]: result = [] for i in range(1,n+1): if i % 3 == 0 and i % 5 == 0: result.append("FizzBuzz") elif i % 3 == 0: result.append("Fizz") elif i % 5 == 0: result.append("Buzz") else: re..
-
[LeetCode] 1672. Richest Customer Wealth 풀이 (java)자기계발/Computer Science 2023. 12. 27. 14:03
문제는 다음과 같다. 2차원 배열 accounts에서 i번째 고객의 재산 총합을 구하고, 가장 많은 재산을 리턴하면 되는 문제다. class Solution { public int maximumWealth(int[][] accounts) { int Maxwealth = 0; for (int i = 0; i < accounts.length; i++) { int wealth = Arrays.stream(accounts[i]).sum(); if (Maxwealth < wealth) { Maxwealth = wealth; } } return Maxwealth; } } wealth 변수를 두고 account[i] 배열의 합을 계산한다. 그리고 Maxwealth와 wealth 변수를 비교해 더 큰 수를 Maxwea..
-
LeetCode 시작자기계발/Computer Science 2023. 12. 27. 12:59
복수전공생으로서 공부 계획만 가지고 있었는데 이번 방학부터 본격적으로 문제를 풀어 보려고 한다. 백준과 leetcode를 병행할 생각인데, 아직 완전 초보인만큼 가능하다고 생각한다. 사실 leetcode 튜토리얼 문제부터 복잡하게 풀어서 2번 풀어낸 나한테는 좀 과분한 목표인가? 라는 생각도 들지만 어떻게든 해내고 싶으니 화이팅해보자. 지금 풀이가 흑역사가 되는 날까지 화이팅 1480. Running Sum of 1d Array class Solution { public int[] runningSum(int[] nums) { int[] sums = new int[nums.length]; sums[0] = nums[0]; for (int i = 1; i < nums.length; i++) { sums[i]..
-
영어 시사 뉴스레터 추천: CNN 5 THINGS자기계발/언어 2022. 4. 2. 14:41
최근 가장 즐겨 보는 컨텐츠는 뉴스레터이다. 간단하게 읽을 수 있으면서도 뉴스의 핵심은 놓치지 않을 수 있어서이다. 그 중에서도 영어에 익숙해질 겸 영어 뉴스레터를 자주 보려고 노력하는 편인데 오늘은 내가 잘 사용하고, 주변인들에게도 많이 추천한 영어 뉴스레터를 추천해 보려고 한다. https://edition.cnn.com/specials/5-things Five things you need to know today - CNNIf your day doesn't start until you've gotten up to speed on the latest headlines, then let us introduce you to your new favorite morning fix. You give us fi..
-
블렌더에 입문하다: 3D isometric bedroom자기계발 2022. 2. 16. 00:34
시작하기에 앞서, 나는 전적으로 취미로 블렌더를 공부하는 사람임을 밝힌다. 처음 블렌더를 공부하려고 결심했을 때는 입문 강의로 유명한 Blender Guru의 donut tutorial로 공부를 시작했다. 그런데 이 도넛 강의는 약 30분 정도의 강의 X 16강 이라는 어마무시한 양을 자랑한다. 6강정도 따라하다가 한시간 넘게 도넛만 만들고 있는것에 현타가 와서... 새로운 강의를 찾아보았다. 유튜브에서 강의시간도 짧고 만들어 보고 싶은 강의 동영상을 찾고 만들어 보기 시작했다. 완강(?)까지는 3~4시간정도 걸린 것 같다. 초보자들을 위한 강의라기보다는 블렌더를 어느 정도 알고 있다는 전제하에 이뤄지기 때문에 단축키나 디테일한 설명은 건너뛴다. 그래서 중간중간 구글링도 많이하고 시행착오도 거치면서 완성..
-
liner 라이너: 웹페이지에 밑줄을 치다.자기계발/생산성 2021. 3. 29. 13:51
'커리어를 완전히 바꾸는 메모 작성법' 이라는 제목으로 SNS에 떠돌아다니는 이 글을 보았다. 꼭 업무가 아니더라도 과거의 경험으로 저렇게 조각조각 파편화된 지식들이 모이면 얼마나 도움이 되는지 깨달은 바가 있기 때문에 그대로까지는 아니더라도 간단하게나마 실천해보려고 해 보았다. 관건은 '무엇을 읽을 것인지?' '어디에다 메모를 정리할 것인지?' 이 두 가지이다. 무엇을 읽을 것인지에 대한 문제는 빠르게 결정했다. 나는 최근 시사/경제 이슈에 관심이 많아서 뉴스레터를 구독하고 있다. '어피티' 와 '뉴닉' 그리고 '돈 밝히는 여자 Cathy' 이 3가지 뉴스레터들을 구독 중인데 최근 조금씩 밀리기 시작해서 짬짬이 틈을 내어 읽기로 했다. + 더해서 구글 뉴스 앱도 사용하고 있다. 다음으로 '어디에 메모를..