새소식

코딩테스트/프로그래머스

[Swift] 다음 큰 숫자

  • -

[문제]

코딩테스트 연습 - 다음 큰 숫자 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

[문제 풀이]

주어진  숫자와 이진법으로 만들었을때 1의 수가 같은 가장 작은 수를 반환하는 함수를 만드는 문제이다.

이진법에서 1의 숫자를 세는 binaryCheck 함수, n과 현재 숫자의 1의 수가 같은지 확인해주는 isCheck 함수, 그리고 n + 1부터 100만까지 돌아가는 반복문을 통하여 문제를 풀 수 있다.

[회고]

프로그래머스 기본 코드가

var answer:Int = 0

 

이 아니라

 

answer:Int = 0

 

로 선언이 되어 있어서 계속 오류가 났었다.

 

눈치를 못챈 나도 잘못하긴 했는데 기본으로 준 코드가 오류나는건 좀 아니지 않나 싶음.

[코드]

import Foundation func solution(_ n:Int) -> Int { var answer:Int = 0 func binaryCheck(_ m: Int) -> Int { var answer:Int = 0 var temp:Int = m while(temp > 0){ if(temp % 2 == 1){ answer += 1 } temp /= 2 } return answer } func isCheck(_ m : Int, _ s : Int) -> Bool { if(binaryCheck(n) == binaryCheck(s)){ return true } return false } for i in n+1...1000000 { if(isCheck(n,i) == true){ answer = i break } } return answer }

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.