본문 바로가기

Algorithm

[Algorithm] 문자열 묶기 (w/ Swift) 문자열들의 길이를 세어 가장 많이 등장한 길이의 개수를 반환하는 함수 만들기. 이번 문제에서는 forEach 메서드를 사용해서 배열의 각 요소를 순회하면서 지정된 클로저를 실행할 수 있었다. 예를 들어, 아래와 같은 배열이 있을 때, let numbers = [1, 2, 3, 4, 5] 이 배열의 각 요소를 출력하고 싶다면 아래와 같이 forEach 메서드를 사용하면 된다. numbers.forEach { number in print(number) } 문자열 묶기 (shortcuts) func solution(_ strArr:[String]) -> Int { var arr = Array(repeating: 0, count: 31) strArr.forEach { arr[$0.count] += 1 } ret.. 더보기
[Algorithm] 문자열 나누기 (w/ Swift) 주어진 문자열을 문자 배열로 변환한 후, 연속된 문자 그룹을 세는 방식으로 풀면 된다. 연속된 문자 그룹이 완성될 때마다 result를 증가시키고, 완성되지 못한 그룹이 있을 경우에도 result를 증가시킨다. 문자열 나누기(shortcuts) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr language = swift func solution(_ s: String) -> Int { var stringValue = Array(s) var x = stringValue[0] var x_cnt = 0 var not_x_cnt = 0 var result = 0 .. 더보기
[Algorithm] 아이스 아메리카노 (w/ Swift & Python) 나눗셈의 몫과 나머지를 구하는 문제로, 변수를 선언하지 않고 곧바로 가격으로 나누어도 된다. 스위프트에서는 상수를 선언하는 let 으로 가격 변수 yeon을, 파이썬에서는 변수의 이름(yeon)만 만들어서 담아 주었다. 아이스 아메리카노(shortcuts) language = swift func solution(_ money:Int) -> [Int] { return [money / 5500, money % 5500] } func solution(_ money:Int) -> [Int] { let yeon = 5500 return [money / yeon , money % yeon] } language = python def solution(money): answer = [money//5500, money%.. 더보기
[Algorithm] 문자열 출력하기 (w/ Swift & Python) print, readLine()을 이해한다면 쉽게 풀 수 있는 문제 문자열 출력하기 (shortcuts) language = swift 나의 풀이 ▽ let yeon = readLine()! print(yeon) 남의 풀이 ▽ print(readLine() ?? "") ?? 연산자는 옵셔널 값이 nil인 경우에 대한 대체 값을 제공하는 역할을 한다. language = python str = input() print(str) 더보기
[Algorithm] 무작위로 K개의 수 뽑기 (w/ Swift & Python) 배열에서 중복되지 않는 요소를 최대 k개까지 추출하는 코드를 짜는 문제로, 추출된 요소의 개수가 k보다 적다면, 남은 공간을 -1로 채우면 된다. 무작위로 K개의 수 뽑기 (shortcuts) language = swift func solution(_ arr:[Int], _ k:Int) -> [Int] { var yeon: [Int] = [] for i in arr{ if yeon.count < k { if yeon.contains(i) == false { yeon.append(i) } } } if yeon.count < k { (yeon.count...(k-1)).forEach{ _ in yeon.append(-1) } } return yeon } 예를 들어, arr 배열이 [1, 2, 3, 2, 4,.. 더보기
[Algorithm] 각도기 (w/ Swift & Python) 평각일 때 4, 둔각일 때 3, 직각일 때 2, 예각일 때 1을 구하는 코드를 짜는 문제로, if 조건문을 사용할 때 swift 언어에서는 else if, python 언어는 elif 라고 표현하는 점을 유의해야 한다. 각도기 (shortcuts) languate = swift func solution(_ angle:Int) -> Int { if angle == 180 { return 4 } else if angle > 90 { return 3 } else if angle == 90 { return 2 } else { return 1 } return 0 } 마지막 줄에 있는 return 0은 실행될 일이 없으므로 제거해도 될 것은데 넣어봤다. 함수의 반환값은 이미 위의 조건문 중 하나에 해당하기 때문에 .. 더보기
[Swift] 짝수의 합 (w/ Swift & Python) 언듯 굉장히 쉬운 문제라고 생각했는데 의외로 오래 고민했다.짝수를 만드는 반복문을 돌린 후 그 값들의 합을 구하는 방식으로 풀었는데 짝수를 만들기 위한 변수와 합을 구하는 변수를 따로 설정한다는 생각을 하지 못해 고민했다. 결과값을 만드는 변수를 어떻게 설정하고 시작하느냐는 언제나 문제의 핵심같다. + 코테를 풀때 answer로 리턴하는 변수, 특히 0으로 초기화하는 변수의 이름은 yeon으로 설정하기로 했다. 나만의 쓸데없는 시그니처? 짝수의 합 (shortcuts) language = swift import Foundation func solution(_ n:Int) -> Int { var i = 1 var yeon = 0 for i in 1...n { if i % 2 == 0 { yeon += i .. 더보기
[Algorithm] 중복된 숫자 개수 세기 (w/ Swift & Python) 배열에서 특정 요소의 개수를 구하는 방식에 대해 복습하는 알고리즘 문제이다. 이번 주에 개인 프로젝트로 진행하는 야구게임에도 사용되는 알고리즘이라서 골라보았다. 중복된 숫자 개수 세기 문제 설명 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요. 제한사항 0 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 1,000 0 ≤ n ≤ 1,000 solution.swift func solution(_ array: [Int], _ n: Int) -> Int { return array.filter { $0 == n }.count } 매개변수 array는 배열타입의 [Int]이고, 매개변수 n은 정.. 더보기