dyqhddl6564   2년 전

스위치 케이스를 이용해서 문제에 접근했습니다. 

d를 읽었다면 다음 인덱스에 z가 있는지 없는지 확인하는 방식으로, dz= 쌍이 완성되면 case에서 나오도록, 완성되지 않으면 다시 d의 인덱스로 돌아가는 방식으로, 최종적으로는 한 덩어리를 넘길때마다 cnt++ 해주는 방식으로 cnt를 계산해주었습니다.

나름 모순없이 코딩했다 생각했는데, 진짜 이상하게도 ljj를 입력하면 1이 나오는데, njj을 입력하면 2가 나옵니다.

25번, 29번 줄에서 볼 수 있듯이, case 'l' 과 case 'n' 은 완전 같은 코드인데 왜 결괏값이 다르게 나오는걸까요????

또 추가로 z=z= 은 2, d=d= 은 2인데, c=c= 은 1이 출력됩니다. 어디가 잘못되었나요???

zenith82114   2년 전

이 코드 하나로 설명이 될 듯합니다.

dyqhddl6564   2년 전

뭐가 잘못된건지 이해됐습니다! 

Break를 쓰면 아예 for문에서 탈출하는건줄알아서 안썼었는데요, case1에서 break를 안쓰면 인자가 2, 3이 아니어도 들어가서 실행된다고 이해하면되나요??

zenith82114   2년 전

네 맞습니다.

그리고 break는 가장 안쪽에 있는 하나만 탈출합니다.

for 안에 switch 안에 break가 있으면 switch만 나오는 거죠.

댓글을 작성하려면 로그인해야 합니다.