728x90
안녕하세요 오늘은 백준 문제풀이 8958번 풀어보도록하겠습니다. 

어려운 문제가 아니니깐 다들 잘해냈을거라 생각합니다.(저는....... 멍청댕청해서 오래걸렸습니다....쿨럭..;;)

 

 

 

 

가장 먼저 스캐너로 배열에 각각 원소에 문자열을 저장해줍니다! 

 

 

그리고 count는 몇번 연속했는지 값을 저장해줄겁니다.

sum 은 누적 합산 값을 나타내는 변수로 선언해 줍니다. 

 

for문에 문자열을 String에 길이만큼 반복할때 문자열을 split으로 하나하나 쪼개어 주었습니다

그 후 

해당 원소의 문자열을 charAt이 아닌 문자열의 같은값(검사)을 구해주는 

eqauls.로 O값을 구하였습니다.

 

O가 나오면 count변수에 1씩 증가 시키고 X가 나올경우 count를 0으로 초기화 시켜주었습니다(저는 초기화시키는방법을 몰라서 조금 오래걸렸습니다...... 지금 생각하면 너무 허무하네요)

 

그렇게 나온값을 sum에 count값을 누적하여 더해준뒤 배열 원소의 문자열을 다 검사하고 나면 sum을 출력해줍니다.

 

  O O O X X X O O O
count 1 1 1 0 0 0 1 1 1
sum 1 2 3 0 0 0 1 2 3

이런식으로 나옵니다. 

 

 

stringbuffer 같은것들로 더 빠르게 실행 시킬수 있지만 Stringbuffer의 정의를 다 알고  제가 남들에게 강의할 수준이 되면 올리겠습니다. ^^ 

 

이해가 되셨나요??? 좀더 쉽게 설명 해드리고 싶지만 ㅎㅎ 궁금하신점 잇으시면 댓글에 남겨주세요;

 

 

제가 책을 보면서 헷갈리게 했던 부분이 있어서 공유를 해봅니다. 

 

누적 도수분포표 만들기에서 할수있습니다.

 

for(int i =0; i<=arr.length; i++)
f[i]+=f[i-1];

이렇게 되면 값은

이런식으로 나오게 됩니다. 혹시나 참고하시게 될수도 있으니 올려둡니다. 

 

 

그럼 이만!!

 

 

 

728x90

'문제풀이 > 백준' 카테고리의 다른 글

백준 2675번 문자열 문제  (0) 2022.04.04
백준 4344 평균은 넘겠지?  (0) 2022.03.17
백준 1546번 자바  (0) 2022.03.09
백준 10818 최대 최소 값 구하기  (0) 2022.01.28
백준 2884 번 자바 문제 풀이- 알람 시계  (0) 2022.01.27
복사했습니다!