BAEKJOON_1212) 8진수 2진수
BAEKJOON
# 알고리즘 기초
# 수학 1
1212) 8진수 2진수 (19.03.21)
* 이번에는 8진수를 2진수로 바꾸는 문제다.
* 2진수8진수 문제와 같이 8진수 한자리를 1과 0을 사용해 세자리로 바꿔주면 2진수가 되는 것이다.
* 이번 문제의 주의점은 앞에 0이 나오면 0을 빼고 출력해야 한다는 점이었다.
* 우선 각 자리 숫자 0부터 7을 000 부터 111로 바꿔주었다.
* 이것 역시 StringBuilder 를 사용했고, append() 함수를 사용했다.
* 그리고 이 수를 출력할 때, 앞에서부터 1인지 확인하고, 0이면 cnt 를 증가하고, 1이면 반복문을 종료하도록 했다.
* 그래서 첫번째 자리부터 cnt 까지의 0을 arr 에서 제거했다.
* 이 때는 delete() 함수를 사용했다.
* 만약 arr의 길이가 0이라면 0을, 그리고 정상적이라면 남은 arr 를 출력하도록 했다.
* 길이가 0이라면 0을 출력하는 부분을 제외했을 때 틀렸다고 나왔다.
* 제외했을 때 0을 입력하면 아무것도 출력하지 않는다.
* 이건 0을 입력하면 000 으로 변환되고, cnt 가 3이므로 0부터 2번 자리까지 지워버리기 때문에
* 아무것도 남아있지 않기 떄문이다.
* 그리고 delete 를 사용하지 않고, else 부분에 cnt 부터 마지막 글자까지 출력하도록 하는건
* 시간은 두배, 메모리는 거의 세배를 잡아먹었다.
!!!!!!!!!!!!! delete(int start, int end) : start 부터 end-1 위치까지 문자를 제거 !!!!!!!!!!!!
댓글
댓글 쓰기