본문 바로가기
반응형

백준38

[C] 백준 1157번 단어 공부 방학에 돌입하고 알고리즘 공부도 할 겸 백준을 하나씩 풀어보고 있다. 다시 시작한 지 얼마 안돼서 단계별로 풀어보기부터 하고있는데, 정답률이 30%대 이하인 문제를 풀면 코드를 포스팅해서 기록해야겠다. 나름의 만족감을 느끼기 위해! 단어 공부 문제는 알파벳 대소문자로 된 단어를 입력하면 가장 많이나온 알파벳이 무엇인지 출력하는 문제이다. 단, 가장 많이나온 알파벳이 여러개면 '?'를 출력한다. 대소문자 구분 없이 알파벳을 세기 때문에 단어를 입력 받은 뒤 바로 전부 대문자로 바꿔주는 작업을 했다. 변수는 가장 많은 알파벳의 개수, 가장 많이 나온 알파벳의 빈도 수(몇 번 나왔는지), 가장 많이 나온 알파벳 이렇게 세 가지로 사용했다. 이중 for문으로 순회할 때 j의 크기가 기준인 i보다 작을 때 str.. 2018. 7. 3.
[C] 백준 1152번 단어의 개수 백준에 단계별로 풀어보기 - 1차원 배열 사용하기에 있는 1번째 문제인 단어의 개수 문제는 이상하리 만큼 정답 비율이 낮다. 나도 예전에 풀었던 흔적이 있는데, 가차없이 틀렸다.. 10번정도.. 그동안 풀었던 모든 코드에는 간과한 경우가 두 가지 있는데, 첫 번째는 처음 나오는 공백, 두 번째는 마지막에 나오는 공백이었다. 그래서 방식을 바로 전 인덱스에서 읽어낸 문자가 공백인지를 판단하는 변수를 따로둬서 연속된 공백이 포함된 문장도 처리할 수 있도록 했다. 바로 전 인덱스에서 공백이고, 현 인덱스에서 문자이면 새로운 단어가 나타난 것이다. 그 때 단어의 개수를 증가시킨다. 단, 문장의 처음은 공백이 없을 수도 있으므로 공백이었는지를 판별하는 isSpace를 1(공백이 나옴)로 초기화한다. #includ.. 2018. 7. 2.
반응형