알고리즘 13

[프로그래머스] 자릿수 더하기 LV1 / kotlin

자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1차 시도 class Solution { fun solution(n: Int): Int { var answer = 0 if (n < 10) { answer = n } else { ..

Dev/Algorithm 2022.12.04

[알고리즘] 프린트(❌) - 알고리즘 공부

✔️사이트 : 프로그래머스 ✔️언 어 : Kotlin ✔️난이도 : Level 2 ✔️문 제 : 프린트 총평 : 테스트가 통과되지 않았다. 문제를 풀어내는 아이디어는 비슷했으나 잘못 생각한 부분이 있었다. 문제 : 아래의 테스트코드를 작성한것처럼 작동해야한다고 생각했다. assertEquals(1, solution(intArrayOf(1), 0)) assertEquals(1, solution(intArrayOf(2, 1, 3, 2), 2)) assertEquals(5, solution(intArrayOf(1, 1, 9, 1, 1, 1), 0)) assertEquals(1, solution(intArrayOf(1, 2, 2, 3, 4, 6, 6, 6, 7, 9), 9)) assertEquals(9, sol..

Dev/Algorithm 2021.03.03

[알고리즘] 다리를 지나는 트럭(⭕) - 알고리즘 공부

✔️사이트 : 프로그래머스 ✔️언어 : Kotlin ✔️난이도 : Level 2 ✔️문제 : 다리를 지나는 트럭 총평 : 초보라서 체감난이도는 3~4 쯤이지 않을까라는 생각을 했다. 과정 : 해당 문제에서는 경과 시간에 맞춰서 다리를 건너는 트럭 을 어떻게 구현하는지가 관건이었다. 트럭위를 지나가는 형태의 다리를 어떤 데이터 구조체를 사용해야할지 해결하는게 제일 어려웠습니다. 그래서 배열, 리스트를 시도하다가 떠오른게 Queue 였으며 다음과 같은 아이디어를 생각했으며 구현했다. 조건 : - 다리 길이 2 - 한계 무게 10 - 대기 트럭 (7,4,5,6) 최소 트럭의 무게가 1 이상이니, 다리 Queue 를 0 으로 채워서 표현했다. 그리고 길이가 2이고 0으로 채워진 Queue 에서 poll 후에 트..

Dev/Algorithm 2021.02.24

알고리즘 - Find Numbers with Even Number of Digits

문제 자체를 이해하지 못해서 처음에 헤맸습니다... 자리수가 짝수인 숫자를 찾는 문제입니다. 문제 Given an array nums of integers, return how many of them contain an even number of digits. Example 1: Input: nums = [12,345,2,6,7896] Output: 2 Explanation: 12 contains 2 digits (even number of digits). 345 contains 3 digits (odd number of digits). 2 contains 1 digit (odd number of digits). 6 contains 1 digit (odd number of digits). 7896 con..

Dev/Algorithm 2020.01.27

1D1A - One Day One Algorithm

1D1A - One Day One Algorithm 최솟값 만들기 자연수로 이루어진 길이가 같은 수열 A,B가 있습니다. 최솟값 만들기는 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한 값을 누적하여 더합니다. 이러한 과정을 수열의 길이만큼 반복하여 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. 예를 들어 A = [1, 2] , B = [3, 4] 라면 A에서 1, B에서 4를 뽑아 곱하여 더합니다.A에서 2, B에서 3을 뽑아 곱하여 더합니다.수열의 길이만큼 반복하여 최솟값 10을 얻을 수 있으며, 이 10이 최솟값이 됩니다.수열 A,B가 주어질 때, 최솟값을 반환해주는 getMinSum 함수를 완성하세요. public int getMinSum(int[] A, int[] B) { ..

Dev/Algorithm 2018.03.26

1D1A - One Day One Algorithm

문제 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다. 기본제공import java.util.Arrays; class TryHelloWorld { public int[] gcdlcm(int a, int b) { int[] answer = new int[2]; return answer; } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args) { TryHelloWorld c = new TryHelloWorld(..

Dev/Algorithm 2018.03.19

1D1A - One Day One Algorithm

문제 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환해 주세요.예를 들어 2x2 행렬인 A = ((1, 2), (2, 3)), B = ((3, 4), (5, 6)) 가 주어지면, 같은 2x2 행렬인 ((4, 6), (7, 9))를 반환하면 됩니다.(어떠한 행렬에도 대응하는 함수를 완성해주세요.) 제출 답안class SumMatrix {int[][] sumMatrix(int[][] A, int[][] B) {int[][] answer = new int[A.length][A[0].length]; for (int i = 0; i < answer.length; ..

Dev/Algorithm 2018.03.14

알고리즘 공부 하려고 덤볐으나.... 넘어졌다.

HackerRank 알고리즘은 별도의 노력이 없으면 자라나지 않는다 라는걸 다시(?) 느꼈다.아마도 알고리즘 훈련이 되어있다면 더 효율적인 코드를 짤 수 있을것이다. 그러나 굳이 알고리즘 훈련을 하지 않더라도 상용 서비스할 수 있는 서비스는 만들 수 있다. 그렇게 알고리즘 훈련 없이 회사에서 코드를 열나게 짜도 효율적이거나 빠른 퍼포먼스를 내는 실력이 늘지 않는다.별도의 노력이 필요하다. https://www.hackerrank.com/

Log 2018.03.09