-------------------------------------------------------------------------------------------------------------------
문제 1.
이진수는 0, 1 두 가지를 사용하여 숫자 값을 나타냅니다.
이진수에서 숫자를 1만큼 증가 시키는 방법은 마지막 숫자에 1을 더하고 결과 값이 2일 경우, 그 숫자를 0으로 설정하고 그 다음 숫자에 같은 연산을 반복하는 것 입니다.
예를 들어 아래와 같은 10진수 수열이 있습니다.
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...
2진수로 표현 할경우 아래와 같습니다.
1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, ...
양의 정수 X의 이진수 표현인 문자열 String x가 주어집니다.
(X+1)을 이진수 표현의 문자열로 리턴하세요.
참고 / 제약 사항
◦x 는 1개 이상 30개 이하의 문자로 구성 됩니다.
테스트 케이스
1 )
String x = "10011"
리턴(정답): "10100"
2 )
String x = "10000"
리턴(정답): "10001"
3 )
String x = "1111"
리턴(정답): "10000"
---------------------------------------------------------------------------------------------------
이런 문제였는데....
기본적인 클래스랑 메소드는 풀어줘야지 진짜 살다살다 Integer 클래스랑 Math 클래스를 막고 풀라고 할줄은 몰랐네요..
하....
데체 시발 세상에 누가 Integer.parseInt, Integer.toBinaryString과 Math.pow를 안쓰고 2진수를 손대나요.
이걸 테스트라고..
세스코멤버쉽
"이진수에서 숫자를 1만큼 증가 시키는 방법은 마지막 숫자에 1을 더하고 결과 값이 2일 경우, 그 숫자를 0으로 설정하고 그 다음 숫자에 같은 연산을 반복하는 것 입니다."
이 말 그대로 구현한다면 언급하신 메소드들은 필요가 없어보여요.
RTX2080Tiㅤ
이해하고 쓰란얘기겠지.
그나저나 착하네 나같으면 대대손손 20대 초반에 탈모오는 유전자 발현하라고 저주할듯
어쩌면제정신이아닐지도
사실 대대손손 태어나자마자 평생 시달리라고 하고싶었는데, 그리 저주하면 업보가 돌아오는지라 참았음.
솔직히 저 문제는 진짜 작정하고 더럽게 낸 문제로밖엔 안 느껴짐.
옥뚜라
어쩌면제정신이아닐지도
알고리즘 테스트도 정도껏 해야지 애초에 알고리즘에 대해 배울 시간도 부족한 상황에서 미친듯이 진도 몰아쳐놓고 지금 저런테스트하면....
Tbps
string도 결국 char이나 byte배열 이니까 그 배열 원소 값을 1 증가시키면 다음 숫자 나오겠지뭐
어쩌면제정신이아닐지도
그냥 저 문제는 안 풀고 버릴 생각임.
테스트도 정도껏 해야지 저거는 테스트보다는 사람 골머리 썩일 악의밖에 느껴지지 않음.
세스코멤버쉽
오지랖 같지만 너무 안타까워서 덧글 남겨요.
문제 자체에서 풀이를 제공하는데, 문제의 키워드일 뿐인 2진수에 너무 집중하신 것 같아요.
굳이 진수 변환이나 형변환하지 않고도 다음처럼 풀이할 수 있어요.
(자바를 하지 않아서 C 스타일로 작성하고 온라인 편집기에서 검증했어요.)
String p = "";
String[] arr = string_x.split("");
for(int i = arr.length - 1; i >= 0; i--) {
if(arr[i].equals("0")) {
arr[i] = "1";
break;
} else {
arr[i] = "0";
if(i == 0)
p = "1";
}
}
System.out.println(p + String.join("", arr));
개인적으로 이런 유형의 문제는 악의를 갖고 출제한다기보다 프로그래밍적 사고를 얼마나 할 수 있는지 확인하는, 생각의 범위를 확인하는 문제라고 봐요. 너무 큰 반감을 갖지 않으셨으면 좋겠어요.
치킨섭취협회
다음번엔 한마디로 설명해주세요
'아만보'
정릉동죽빨
시키면 시키는대로 하자
노말타입
윗사람 말대로 프로그래밍적 사고력을 다지는데에 목적이 있는 문제 같은데 '이진수'에 너무 강하게 포커스를 두신 듯.
아주 맞는 비유는 아니지만, 초등수학 교과과정에서 곱셈 처음 배울 때 곱셈기호 없이 더하기로만
곱셈연산을 수행하고 풀어쓰게하는 과정이 꼭 있거든 불편하라고 악의를 담은게 아니라 보다 완전한 이해를 유도하는 과정임
구름쿠모
별로 복잡하지도 않구만 뭔 호들갑이 이래 심해
안드로이드박사
음 충분히 낼수있는 문제같은데....
구름쿠모
x[0]ー'0' 하면 바로 숫자값 나오는데
구름쿠모
알고리즘 헤더 막고 힙소트 짜라하면 경기일으키시겟네
아리성애자
힙소트는 경기일으키는게 맞다
구름쿠모
심지어 문제는 첫케릭터부터 +1해서 2나오면 다음자리 올려주다가 맨끝이2면 스트링 한개 새로만들어서 넘기면되네
esibel
이진수라는 생각에 갇혀있으니까 문제를 못풀지 ㅉㅉ