프로그래밍

온코더 만든놈은 진짜 탈모에 소화불량으로 시름시름 앓았으면 좋겠군요...

-------------------------------------------------------------------------------------------------------------------

문제 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진수를 손대나요.

이걸 테스트라고..

18개의 댓글

2019.05.24

"이진수에서 숫자를 1만큼 증가 시키는 방법은 마지막 숫자에 1을 더하고 결과 값이 2일 경우, 그 숫자를 0으로 설정하고 그 다음 숫자에 같은 연산을 반복하는 것 입니다."

이 말 그대로 구현한다면 언급하신 메소드들은 필요가 없어보여요.

0
2019.05.24

이해하고 쓰란얘기겠지.

 

그나저나 착하네 나같으면 대대손손 20대 초반에 탈모오는 유전자 발현하라고 저주할듯

0
@RTX2080Tiㅤ

사실 대대손손 태어나자마자 평생 시달리라고 하고싶었는데, 그리 저주하면 업보가 돌아오는지라 참았음.

솔직히 저 문제는 진짜 작정하고 더럽게 낸 문제로밖엔 안 느껴짐.

0
2019.05.24
[삭제 되었습니다]
@옥뚜라

알고리즘 테스트도 정도껏 해야지 애초에 알고리즘에 대해 배울 시간도 부족한 상황에서 미친듯이 진도 몰아쳐놓고 지금 저런테스트하면....

0
2019.05.24

string도 결국 char이나 byte배열 이니까 그 배열 원소 값을 1 증가시키면 다음 숫자 나오겠지뭐

0
@Tbps

그냥 저 문제는 안 풀고 버릴 생각임.

테스트도 정도껏 해야지 저거는 테스트보다는 사람 골머리 썩일 악의밖에 느껴지지 않음.

0
2019.05.24
@어쩌면제정신이아닐지도

오지랖 같지만 너무 안타까워서 덧글 남겨요.

문제 자체에서 풀이를 제공하는데, 문제의 키워드일 뿐인 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));

 

개인적으로 이런 유형의 문제는 악의를 갖고 출제한다기보다 프로그래밍적 사고를 얼마나 할 수 있는지 확인하는, 생각의 범위를 확인하는 문제라고 봐요. 너무 큰 반감을 갖지 않으셨으면 좋겠어요.

1
2019.05.24
@세스코멤버쉽

다음번엔 한마디로 설명해주세요

'아만보'

0
2019.05.24

시키면 시키는대로 하자

0
2019.05.24

윗사람 말대로 프로그래밍적 사고력을 다지는데에 목적이 있는 문제 같은데 '이진수'에 너무 강하게 포커스를 두신 듯.

아주 맞는 비유는 아니지만, 초등수학 교과과정에서 곱셈 처음 배울 때 곱셈기호 없이 더하기로만

곱셈연산을 수행하고 풀어쓰게하는 과정이 꼭 있거든 불편하라고 악의를 담은게 아니라 보다 완전한 이해를 유도하는 과정임 

0
2019.05.24

별로 복잡하지도 않구만 뭔 호들갑이 이래 심해

0

음 충분히 낼수있는 문제같은데....

0
2019.05.24

x[0]ー'0' 하면 바로 숫자값 나오는데

0
2019.05.24

알고리즘 헤더 막고 힙소트 짜라하면 경기일으키시겟네

0
2019.05.24
@구름쿠모

힙소트는 경기일으키는게 맞다

0
2019.05.24

심지어 문제는 첫케릭터부터 +1해서 2나오면 다음자리 올려주다가 맨끝이2면 스트링 한개 새로만들어서 넘기면되네

0
2019.05.24

이진수라는 생각에 갇혀있으니까 문제를 못풀지 ㅉㅉ

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180584 [잡담] 논 rgb 구성으로 맞췄더니 뭔가 심심해서 전기모기채는신이야 0 11 분 전 8
180583 [컴퓨터] 이거 사운드카드 죽은거냐? 3 와신상담 0 2 시간 전 79
180582 [컴퓨터] m.2케이스에 넣어서 sd카드 대신에 사용해도 괜찮아?? 6 코싸멘뚜 0 2 시간 전 99
180581 [잡담] 플스5 아무거나 사면됨?? 6 년째재수강 0 2 시간 전 82
180580 [모바일] 24 울트라 5G 512기가는 재고가 아예없네 3 마법부오러사무국장 0 3 시간 전 127
180579 [컴퓨터] 아니 바탕화면 창에 ㅈ 같은 이거 도대체 뭐라고 해요? 8 사슴만지게해줘 0 4 시간 전 179
180578 [모바일] 갤럭시 처음 써보는데 문자알림 내용표시 어떻게 해??? 17 bulusuky 1 4 시간 전 76
180577 [프로그래밍] 엥 구글 플러터 유기각 재는거임?? 4 최수연 0 5 시간 전 120
180576 [모바일] 모바일 크롬 탭창 표정 바뀜 ㅎㄷㄷ 1 살에눈나와어른의... 1 6 시간 전 133
180575 [모바일] 폰 충전기 발열이 넘 심한데 바꿔야 하나 2 우히히힣 0 8 시간 전 107
180574 [컴퓨터] i9 13900k 쓰고있는데 질문! 3 래더넉 0 11 시간 전 145
180573 [컴퓨터] 키보드 -> 방향키가 눌릴때 삐걱거림 4 뮤잉운동케겔운동... 0 13 시간 전 65
180572 [모바일] 기기변경할때 유심을 같은거쓰면 정보 그대로 보존됨? 2 마법부오러사무국장 0 14 시간 전 93
180571 [잡담] 결국 레이니 75 구매함 5 이제는끝내자 0 15 시간 전 200
180570 [컴퓨터] 이륙 허가를 요청한다! 15 와플맛 0 16 시간 전 142
180569 [컴퓨터] 찐따 컴하하 컴퓨터 구매 완료 7 69746974 0 16 시간 전 150
180568 [모바일] a34주문했는데 품절이네 ㅅㅂ 울그락푸르락 0 18 시간 전 131
180567 [컴퓨터] 보통 모니터 스펙이 높을수록 발열이 심해짐? 7 오늘하루도빚갚으리오 0 19 시간 전 152
180566 [컴퓨터] 스마트폰용 SD카드 샀는데 이거 잘 인식 되려나? 6 마두라지 0 19 시간 전 121
180565 [모바일] 갤탭s10 존버중이였는데 그냥 s9 살까 7 한림예고 0 19 시간 전 158