Dev/Algorithm 39

간만의 알고리즘 공부 - 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

[프로그래머스] 자릿수 더하기 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

알고리즘 - Defanging an IP Address

문제 Given a valid (IPv4) IP address, return a defanged version of that IP address. A defanged IP address replaces every period "." with "[.]". Example 1: Input: address = "1.1.1.1" Output: "1[.]1[.]1[.]1" Example 2: Input: address = "255.100.50.0" Output: "255[.]100[.]50[.]0" 답안 간단한 내장 함수를 사용해서 적용 class Solution { fun defangIPaddr(address: String): String { return address.replace(".", "[.]") } } ..

Dev/Algorithm 2020.02.02

알고리즘 - 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