TIL
알고리즘 의문점
박민혁_kog
2023. 9. 1. 19:55
이 문제는 프로그래머스의
3진법 뒤집기 라는 문제인데
아래의 코드는 정답이긴하나 런타임 에러가 뜬다
using System;
using System.Collections.Generic;
public class Solution {
public int solution(int n) {
int answer = 0;
int number=n;
List<int> a=new List<int>();
while(number>=1)
{
a.Add(number%3);
number=number/3;
}
a.Reverse();
Console.WriteLine($"{a[0]}{a[1]}{a[2]}{a[3]}");
Console.WriteLine($"{a.Count}");
for(int i=0;i<a.Count;++i)
{
if(a[i]!=0)
{
answer+=a[i]*(int)Math.Pow(3,i);
}
}
Console.WriteLine($"{(int)Math.Pow(3,1)}");
return answer;
}
}
그러나 아래 코드는 뜨지 않는다!!!
using System;
using System.Collections.Generic;
public class Solution {
public int solution(int n) {
int answer = 0;
int number=n;
List<int> a=new List<int>();
while(number>=1)
{
a.Add(number%3);
number=number/3;
}
a.Reverse();
for(int i=0;i<a.Count;++i)
{
if(a[i]!=0)
{
answer+=a[i]*(int)Math.Pow(3,i);
}
}
return answer;
}
}
차이가 있는건 내가 중간에 값 확인하기위해 console.WriteLine 3줄뿐인데 이 3줄로 런타임에러가 나는것일까?
for문도 아니고 콘솔 단 3줄 때문에? 라는 의문이 생겼다
곱하기가 나누기 보다 빠르다
5 = 0.5 만들기
1. 5*0.1= 0.5
2. 5/10=0.5
1이더 빠르다