article thumbnail image
Published 2020. 11. 28. 02:10

#8821 : 적고 지우기

[코드]

SWEA 8821 코드

 

[코드설명]

  ① main

 0과 9의 개수를 저장하기 위해 num_list 배열, 문자열을 받기 위해 str 배열을 선언했다. num_list 배열은

숫자의 개수를 저장해야 하기 때문에 값을 0으로 바꿨다.

 str[i]의 값을 c에 하나씩 받고, 문자를 숫자로 바꾸기 위해 c의 값에서 48을 뺐다. 그리고 조건 연산자를 사용해서 num_list[c]의 값이 0일 경우 1을 1일 경우 0을 반환하도록 하고, 그 값을 num_list[c]에 저장했다.

while문이 끝나면 num_list의 합을 sum에 저장하고, t와 sum을 출력하도록 했다. 

 

[실행결과]

SWEA 8821 실행결과

 

 

 

#8741 : 두문자어

[코드]

SWEA 8741 코드
SWEA 8741 코드

 

[코드설명]

  ① main

 scanf는 공백을 받아들이지 않기 때문에 gets함수로 문자열을 받았다. str에서 대문자로 바꾼 문자는 upr 배열에 저장하려고 한다.

 for문에서 c가 공백이면 gap의 값을 1로 바꾸고 다음 반복으로 넘어가게 했다. 만약 gap이 1이라면 이전 c값이 공백이므로 현재 c가 단어의 첫번째 문자라는 것을 알 수 있다. 따라서 이때 c의 값을 32를 빼서 대문자로 바꾸고, upr[j]에 넘긴다음 j의 값을 1증가시켜야 한다. 모든 과정을 수행 후 gap을 0으로 바꿔야 한다.

 

while문이 끝나면 upr[j]에 '\0'값을 넣어서 문자열을 완성시킨다. 

 

[실행결과]

SWEA 8741 실행결과

'알고리즘' 카테고리의 다른 글

C 과제 1/2  (0) 2021.01.11
[BOJ] 10809/10773  (0) 2021.01.07
[SWEA] 8888/8840  (0) 2020.11.20
[SWEA] 10912/9229  (0) 2020.11.11
[SWEA] 10059/9700  (0) 2020.11.06
복사했습니다!