2577번 - 숫자의 개수
계속 차근차근 봐도 코드는 맞는 것 같은데 출력이 계속 이상하게 나오네요.
뭐가 문젠지 알려주세요.
문제만 해결하려면 13번째 줄을 if( d[i]==j + '0' )로 바꾸시면 될 것 같습니다
다른 개선점으로는 쓸모없는 k의 존재가 있고, 999의 3제곱은 9자리라는 점이 있습니다
만약 더 간결한 코드를 원하신다면 9번째 줄을 for(i = 0; d[ i ] != 0; i++)로 바꾸고, 11-18번째 줄의 for문을 n[ d[ i ] - ' 0 ' ]++; 로 바꾸시는 방법이 있습니다
문제 해결은 했는데 왜 13번째 줄에 if( d[i]==j + '0')로 바꾸는데에 있어 왜 + '0'을 넣는 이유가 뭔가요.
실제로 저걸 넣으니까 맞다고는 뜨는데;;
위의 1번에서 설명을 빼먹었는데, 0~9의 아스키코드는 차례로 48~57입니다.
즉, d[i]가 '1'이라면(정수 1이 아닙니다), ( d[i] - '0' == 1 )일 때 참입니다.
댓글을 작성하려면 로그인해야 합니다.
bangbadak 5년 전
계속 차근차근 봐도 코드는 맞는 것 같은데 출력이 계속 이상하게 나오네요.
뭐가 문젠지 알려주세요.