ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python. OX퀴즈(8958번)
    백준문제/Python 2019. 12. 23. 00:44

     

     

    진짜...나는 왜 이렇게 어렵게 생각하는거지...

    (거의 4시간 이상 쏟아부웠다..)

     

     

    문제

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

    "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

    OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

     

     

    이 문제에서 중요한것은

    O가 연속될 때 점수, 입력이 다 끝난뒤 점수가 나오는 것 이다. 

    (이게 너무 어려웠다. 나한테는...split("x")하고 진짜 ...)

     

    간단히 생각하면 된다. 

     

    나는 hap() ,a() 변수를 사용하여 "O"가 연속될때 마다  a+=1  을 해주었고 

    이것을 hap+=a 로 더해주었다.

     

    "X"일땐 a=0으로 초기화 해주면 된다.

     

    그리고 입력이 끝난 뒤 점수가 나오게 하는 것은

    list() 를 만들어서 pop(0)으로 리스트의 점수가 차례대로 나오게끔 하였다. 

     

     

    Python3 8958번 소스코드

     

    두번째 for문에서 a와 hap을 0으로 초기화 해주지 않으면 다음 문자열을 읽을 때 a와 hap의 수가 중첩된다. 

    (꼭 a=0, hap=0으로 초기화 해주기!) 

     

    Python3 8958번 결과

     

    틀린 이유를 몰랐던 문제

    .

    .

    . 하지만!

    .

    .

    주의!!!

    if 문에서 OX를 대문자로 입력받기!!!!

    그러면 성공!!

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

    Python. 아스키 코드(11654번)  (0) 2020.01.16
    Python. 단어공부(1157번)  (0) 2020.01.05
    Python. 더하기 사이클(1110번)  (0) 2020.01.02
    Python. 크로아티아 알파벳(2941번)  (0) 2019.12.26
    Python. 나머지(3052번)  (0) 2019.12.22

    댓글

Designed by Tistory.