분류 전체보기 509

간만의 알고리즘 공부 - 9 (멀리 뛰기 | 피보나치 수열)

문제 설명효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는(1칸, 1칸, 1칸, 1칸)(1칸, 2칸, 1칸)(1칸, 1칸, 2칸)(2칸, 1칸, 1칸)(2칸, 2칸)의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.제한 사항n은 1 이상, 2000 이하인 정수입니다. 해당 문제는 손으로 일일히 구하는 형태로는 어느정도 구하겠는데, 어떻게 해결해야할지 감이 잡히지 않았다. 처음 접근은 멀리뛰..

Dev/Algorithm 2024.07.06

간만의 알고리즘 공부 - 8 (하샤드 수)

문제 설명양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.제한 조건x는 1 이상, 10000 이하인 정수입니다. 입출력 예 내가 푼 방법fun solution(x: Int): Boolean { var haxadNum = x.toString().split("").filter { it.isNotEmpty() }.map{ it.toInt() }.sum() return x % haxadNum == 0} 코드 첨삭fun solution(x: Int): Boolean { //..

Dev/Algorithm 2024.07.06

간만의 알고리즘 공부 - 7 (두 정수 사이의 합 | 등차수열의 합)

문제 설명두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.제한 조건a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.a와 b의 대소관계는 정해져있지 않습니다.입출력 예  내가 푼 방법fun solution(a: Int, b: Int): Long { var answer: Long = 0 var low = a var high = b if (low > high) { var temp = high high = low lo..

Dev/Algorithm 2024.07.05

간만의 알고리즘 공부 - 5 (행렬 곱셈)

문제 설명2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.제한 조건- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.- 곱할 수 있는 배열만 주어집니다. 입출력 예  내가 시도한 방법fun solution(arr1: Array, arr2: Array): Array { var answer = arrayOf() val answerList = answer.toMutableList() for (arr1RowIndex in arr1.indices) { var answerColumn = mutableListOf(..

Dev/Algorithm 2024.07.03

간만의 알고리즘 공부 - 4 (이진 변환 반복하기)

문제 설명0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다.- x의 모든 0을 제거합니다.- x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다.예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다.0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요.제한사항s의 길이는 1 이상 150,000 이하입니다.s에는 '1'이 최소 하나 이상 포함되어 있습니다. 어떻게 해야하는지..

Dev/Algorithm 2024.07.03

간만의 알고리즘 공부 - 3 (정수제곱근 판별)

문제 설명임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.제한 사항n은 1이상, 50000000000000 이하인 양의 정수입니다.입출력 예n = 121 / return 144n = 3 / return -1입출력 예 설명입출력 예#1 - 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.입출력 예#2 - 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.  내장 함수들을 활용하지 않고 풀어서 아쉽다. 내가 푼 방법class Solution { fun solution(n: Long): Long { ..

Dev/Algorithm 2024.06.30

간만의 알고리즘 공부 - 2 (최소공배수)

문제문제 설명두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.제한 사항- arr은 길이 1이상, 15이하인 배열입니다.- arr의 원소는 100 이하인 자연수입니다.입출력 예입 : [2,6,8,14] / 출 : 168입 : [1,2,3] / 출 : 6  산수 관점에서는 가능했는데 어떻게 구현해야할지 몰라서 접근방법(?)이라고 적혀있지만 거의 답이였는 ..

Dev/Algorithm 2024.06.27

[책/도서] 어떻게 서비스를 만들어야할까? - 해결 할 프로덕트

나는 누구이고 어떤 이유로 책을 읽게 되었는가? 현재 서비스도 와이프와 만들어보고 있고 저의 호기심으로 시작한 인터뷰 유튜브도 만들어가고 있습니다. 서비스, 유튜브 컨텐츠들은 각각의 서비스이고 회사를 만들어가는 단계에서는 아주아주 초기 단계를 경험하고 있는 셈입니다. 이런 초기 단계를 경험하고 있다보니 어떻게 서비스를 혹은 컨텐츠를 만들어가야할까에 대한 고민을 늘 가질 수 밖에 없고 계속 가지고 있습니다. 그런데 우연하게 '해결 할 프로덕트' 리뷰어 모집을 알게됐고, 운 좋게도 리뷰어로 선정이 되어 책을 읽을 수 있는 좋은 기회가 되었습니다. 책의 구성은 어떻게 되어 있는가? 일단 책이 두꺼웠고, 두께에서 오는 위압감(?)은 책을 들어보면 알 수 있습니다. 다만 페이지에 구성된 텍스트는 간격과 여백등을 ..

2024.02.24

[책/도서] 세컨드브레인 - 어떻게 메모를 해야할까?

기억하고 연결하고 창조하다 p54 세컨드 브레인 네 가지 핵심 기능 - 아이디어를 구체화한다 - 아이디어 사이의 연관성을 새롭게 밝혀낸다 - 시간을 두고 아이디어를 발전시킨다 - 나만의 독특한 관점을 정교하게 다듬는다 p60 영화 제작자 '세바스찬 융거' 이 남긴 '작가의 벽' - 작가의 벽에 부딪힌 것이 아니다. 주제에 관한 힘과 지식을 갖추고 글을 쓰기에 필요한 사전 조사를 충분히 하지 않았을 뿐이다. 적절한 단어를 떠올릴 . 수없다는 말이 아니라 글을 쓸 탄약이 부족하다는 뜻. p68 세컨드 브레인을 구성하는 과정 네가지 단계 CODE - Capture 수집 - Organize 정리 - Distill 추출 - Express 표현 p70 - 수집 : 공명하는 내용을 수집하라 - 가슴이 와 닿는 내용만..

2024.02.06