5/25일경 올린 질문글 <div><a target="_blank" href="http://www.todayhumor.co.kr/board/view.php?table=programmer&no=10428&s_no=10428&kind=search&search_table_name=programmer&page=1&keyfield=subject&keyword=%EC%88%AB%EC%9E%90%EB%A5%BC">http://www.todayhumor.co.kr/board/view.php?table=programmer&no=10428&s_no=10428&kind=search&search_table_name=programmer&page=1&keyfield=subject&keyword=%EC%88%AB%EC%9E%90%EB%A5%BC</a></div> <div><br></div> <div>에 대해 3분이서 친절하게 답변을 달아주셔서 해결을 했습니다.</div> <div><br></div> <div>글링크를 들어가기 귀찮으신 분을 위해 질문글과 해결방법을 설명드리자면</div> <div><br></div> <div>1. 3자리의 수가 들어오게 됩니다 (001,002,....009,010,...998,999)</div> <div><br></div> <div>2. 들어온 숫자의 값은 +1되어서 나가야합니다 (001->002,....)</div> <div><br></div> <div>3. 999가 들어온순간 999부터는 규칙이 변화됩니다</div> <div><br></div> <div>4. 999가 들어오면 다음 숫자는 A01이 됩니다</div> <div><br></div> <div>5. 그다음 규칙은 A01,A02....A10,A11....A98,A99, B01,B02....B99....Z01....Z99 입니다.</div> <div><br></div> <div>이를 해결하고자 조건 3개(들어온 값이 1~998인지/999인지/나머지 인지)으로 나누어 나름 해결을 했는데 </div> <div><br></div> <div><div style="font-family:gulim;line-height:21.6000003814697px;">if 입력값 <= 1 and 입력값 >= 998 <span class="Apple-tab-span" style="white-space:pre;"> </span>//입력값이 1~998인경우</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>RETURN<span class="Apple-tab-span" style="white-space:pre;"> </span>입력값=입력값+1</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">else if 입력값 == 999 <span class="Apple-tab-span" style="white-space:pre;"> </span>//입력값이 999인경우</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>RETURN 입력값 = A01</div> <div style="font-family:gulim;line-height:21.6000003814697px;">else <span class="Apple-tab-span" style="white-space:pre;"> </span>//나머지 경우 A01,A02...B01,B02....</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>strFnum 선언 <span class="Apple-tab-span" style="white-space:pre;"> </span>//입력되는 3자리숫자중 앞에 첫번째 자리 문자 ex) A01에서 A에 해당</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>strBnum 선언 <span class="Apple-tab-span" style="white-space:pre;"> </span>//입력되는 3자리숫자중 두 번째, 세 번째 자리 문자 ex) A01에서 01에 해당</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>strFnum=입력값.left(0)</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>strBum=입력값.right(1)</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>if strBnum == 99 <span class="Apple-tab-span" style="white-space:pre;"> </span>//A99,B99,C99.....</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>strFnum= Asc(strFnum+1) <span class="Apple-tab-span" style="white-space:pre;"> </span>// 아스키코드 값을 증가시켜 가르키는 알파벳 값을 올려줍니다.</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>strBnum=01</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>else <span class="Apple-tab-span" style="white-space:pre;"> </span>//A01,A02....A98, B01,B02....B98....</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>strBnum=strBum + 1 <span class="Apple-tab-span" style="white-space:pre;"> </span>//01->02, 02->03...</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>end if</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>RETURN 입력값 = strFnum & strBum </div> <div style="font-family:gulim;line-height:21.6000003814697px;">end if</div></div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">보시는 바와같이 이중IF문이지만 조건의 갯수가 3개여서 보기가 좀 그렇습니다.</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">그래서 질문글을 올리게 되었고 답변 댓글들을 참조하여 아래와 같이 변형하였습니다.</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">1.숫자를 입력받는다</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">2.받은 숫자를 +1 증가 시킨다</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">3.증가된 값이 1000미만이면 그대로 리턴한다 (분기1)</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">4.증가된 값이 1000이상 이면 값을 100으로 나눠서 몫(fNum로 칭함)과 나머지(bNum로 칭함)로 따로 분리한다</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">4.1 <span style="line-height:21.6000003814697px;">fNum</span>의 값에다가 +55를 하여 아스키 코드로 표현한다</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">4.2 <span style="line-height:21.6000003814697px;">bNum</span>의 값이 0인경우 B의 값에 +1을 한다.</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>999->1000인경우 1000을 A01로 표현하기 위해서 00->01로 바꿔주어야 하기때문입니다.</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">4.3 <span style="line-height:21.6000003814697px;">fNum</span>와 <span style="line-height:21.6000003814697px;">bNum</span>의 값을 스트링형태로 묶어준다</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">4.4 원하고자 하는 표현 방식(A01)방식대로 나오며 이것을 반환한다. (분기2)</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">이렇게 해결이 되었습니다. </div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">여기서 또 문제가 하나 발생하였었는데 1번과 2번 사이에서 받은 숫자가 일반적인 1~999가 아닌 A01,A02...인 경우가 발생하는데</div> <div style="font-family:gulim;line-height:21.6000003814697px;"><br></div> <div style="font-family:gulim;line-height:21.6000003814697px;">이를 위해 값이 일반적인 정수인지, 아스키코드값이 잇는 숫자인지 판별하는 함수를 1과 2번 사이에 추가하여 해결을 하였습니다.</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.