분류 전체보기(191)
-
(알고리즘) 최대공약수와 최소공배수 구하기
신나는 주말!주말에는 간단한 알고리즘 문제를 풀어보자! 🔥알고리즘 문제 문제 설명두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.제한 사항두 수는 1이상 1000000이하의 자연수입니다. 입출력 예nmreturn312[3,12]25[1,10]420[4,20]입출력 예 설명입출력 예 #1위의 설명과 같습니다.입출력 예 #2자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다. 내가 작성한 코드 fun soluti..
2024.05.04 -
공간 복잡도
✔오늘 배운 중요한 🔑 point시간 복잡도가 알고리즘이 실행되는 시간에 따른 효율성을 뜻한다면 공간 복잡도는 알고리즘을 실행시키고 완료까지 사용한 공간의 양을 뜻한다공간 복잡도의 경우 메모리가 부족한 경우에는 상대적으로 저렴한 비용으로 해결이 가능하지만 시간 복잡도의 경우 시스템의 성능이 느려지는 경우에는 비싼 비용이 필요하기 때문에 상대적으로 공간 복잡도 보다는 시간 복잡도의 중요성이 더 크다🎯 오늘 배운 내용 공간 복잡도프로그램을 실행시키고 완료까지 사용한 공간의 양을 뜻하며 Big-O 표기법을 그대로 사용한다 공간 복잡도 평가고정 공간 요구: 알고리즘이 실행되는 동안에도 항상 필요한 고정된 공간이 있는지 확인 (변수, 상수, 배열 등의 메모리 공간을 할당하는 고정된 요구 )가변 공간 요구: ..
2024.05.03 -
시간 복잡도
✔오늘 배운 중요한 🔑 point시간 복잡도는 알고리즘이 입력 크기에 따라 실행되는 데 필요한 시간의 증가 속도를 설명한다. 보통 알고리즘의 효율성을 나타내는 중요한 지표 중 하나이며 보통 "Big O 표기법"을 사용하여 표현한다. 쉽게 말해 시간복잡도는 알고리즘의 성능이 좋은지 나쁜지 보여주는 것이다.🎯 오늘 배운 내용 시간 복잡도시간 복잡도는 알고리즘이 입력 크기에 따라 실행되는 데 필요한 시간의 증가 속도를 설명하며 알고리즘의 효율성을 나타내는 중요한 지표 중 하나이다 Big-O 표기법Big O 표기법은 알고리즘의 성능을 입력 크기에 대한 상한을 나타낸다. O(1): 입력 크기와 상관없이 항상 일정한 실행 시간을 가짐 EXCELLENTO(log n)은 입력 크기의 로그에 비례하는 실행 시..
2024.05.02 -
git branch
✔오늘 배운 중요한 🔑 pointbranch는 기존의 코드를 복제하여 여러 사람이 독립적으로 작업을 진행하고, 작업이 완료되면 원본 코드에 통합할 수 있다연습단계에서는 하나의 branch를 이용하고 있지만 실무에서는 서로다른 branch를 이용하여 각기 작업을 수행하기도 한다다른 branch를 합칠때는 git merge뿐만 아니라 git rebase도 있는데 git rebase는 히스토리를 깔끔하게 유지하고자 할 때, 특히 작업 브랜치를 기본 브랜치의 최신 상태로 유지하고 싶을 때 선호된다🎯 오늘 배운 내용 branch git branch란?Git 브랜치는 코드를 분리하여 개별적으로 작업하고 변경 내용을 관리하는 도구이다 branch를 왜 사용할까?소프트웨어 개발 프로세스를 효율적으로 관리하기 위..
2024.05.01 -
고차함수와 람다식
✔오늘 알게된 중요한 🔑 point고차함수를 사용하면 코드의 추상화 수준을 높이기 때문에 코드를 이해하기 쉽고 유지보수 하기 쉽게 만들 수 있다.🎯 오늘 연습한 내용고차함수의 정의고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수다.특히 코틀린에서는 람다나 함수 참조를 사용해 함수를 값으로 표현할 수 있다 map컬렉션 내의 각 요소에 대해 주어진 함수를 적용-> 새로운 컬렉션을 생성 fun main() { val numbers=listOf(1,2,3,4,5,6) val multiplyNumbers=numbers.map{it*it} val multiplyNumbers2=numbers.map{it*10+20} println(multiplyNumbers) pri..
2024.04.30 -
Enum class
✔오늘 배운 중요한 🔑 pointEnum class는 상수를 저장하는 역할 뿐만 아니라 코드를 구조화하고 간결하게 만들 수 있기 때문에 리팩토링을 할 때 매우 유용하다when 문을 사용하면서 복잡해진 코드를 각 상수에 대한 동작을 메서드로 정의하여 코드를 더 간결하게 만들 수 있다 🤔 어떻게 활용할까?지난번부터 계속된 calculator 코드를 리팩토링하여 코드의 가독성을 더 높이고 코드를 더 간결하게 하는 것을 목표로 해야겠다.📓 오늘의 한줄Sometimes rethinking and restarting can be helpful in achieving the results we desire- Robert K. Crosson -
2024.04.29