본문 바로가기

PS/백준

[BOJ] 백준 8958 OX퀴즈 (Swift)

반응형

문제

https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

풀이

  • step이라는 변수를 두어서 O가 연속으로 나올 때, step의 값을 1씩 증가시키고 그 값을 출력 값에 더해주는 방식으로 풀이할 수 있음
  • X 문자열을 기준으로 문자열을 나누는 방식으로도 풀이할 수 있음
    • OOXXOOOXO 라는 문자열이 있다면, X를 기준으로 문자열을 나누면 ["OO", "OOO", "O"]의 배열이 만들어짐
    • ["OO"(1 + 2), "OOO"(1 + 2 + 3), "O"(1)"] 길이에 따라서 1 ~ N까지의 합 공식을 사용해서 풀이할 수 있음
      • 1 ~ N 까지의 합 = N * (N + 1) / 2

소스코드

후기

  • 처음에는 첫번째 방법으로 풀이했지만, 다른분들의 풀이도 참고하면서 두번째 방법에 대해도 알게되었음
  • 두번째 방법으로 풀이를 하면서 코드가 짧아지니깐 좀 재밌는것 같다..ㅎㅎ 😋
반응형