BOID

swift에서 n진법 계산하기! ( radix: ) - HoonIOS 본문

알고리즘에 유용한 문법

swift에서 n진법 계산하기! ( radix: ) - HoonIOS

HoonIOS 2021. 5. 12. 10:28
728x90

안녕하세요, HoonIOS입니다. :)

 

프로그래머스에서 기초적인 진법 변환 알고리즘을 일일이 계산해서 풀려고 했는데 swift에는 진법 변환을 하는 문법이 있더라고요!

그래서 진법 계산할때 유용하게 사용하면 좋을 거 같아 포스팅을 하게 되었습니다.

 

swift에서 n진법으로 구현을 하기 위해서는 radix:를 통해서 간단하게 구현을 할 수 있습니다.

 

한번 바꿔 볼까요?

 

 

* 코드 설명

  • String(ten, radix: 2)의 문법은 변수로 받은 10의 10진법을 2진수로 바꿔주라 라는 말입니다.
  • 즉 raidix에 해당하는 진수로 바꿔줘!라는 말과 같습니다.
  • 원래 String( , raidx:)를 사용하면 String으로 반환을 하게 되는데 여기서는 Int형으로 변환을 해줬는데요, 그 이유는 없습니다... 그냥 숫자여서 Int형으로 받고 싶어서 변환해주었습니다. ㅎㅎ

 

그럼 이것을 이제 다시 10진수로 바꿔주겠습니다.

 

그러기 위해서 Int형의 radix init을 사용해야 하는데요, 애플 공식문서를 한번 살펴보겠습니다.

 

* 설명

  • 공식문서에 따르면 받은 string과 radix값으로 부터 새로운 값을 만들어주는 것이라고 쓰여있습니다.
  • S에는 StringProtocol을 통해 문자열 변수를 가져오면 해당 문자열이 해당하는 진수를 raidx에 적어주면 됩니다.
    그럼 radix에 해당하는 진수 값을 10진수로 변환을 하게 됩니다.

 

위에서 2진수로 바꿔줬던 HoonIOS변수를 한번 사용해보겠습니다.

 

* 코드 설명

  • Int( n , radix: 2)는 이건 2진수로 되어있어 그러니깐 n값을 10진수로 바꿔줘!라고 말하는 것과 같습니다.

    단, 여기서 n은 Int형이 아닌 String형이 들어가야 됩니다.

    위 공식문서에 s는 StringProtocol이야라고 나와있는 게 보이시죠?

이렇게 10진법과 n진법으로 변환 방법을 알아봤습니다. 쉬우면서도 간단한 방법 하네요 :)

반응형
Comments