-
[백준 문제풀이] 얼렁뚱땅 22859번 HTML 파싱 풀이얼렁뚱땅 백준 문제풀이 2022. 8. 17. 22:24
https://www.acmicpc.net/problem/22859 후 .... 진짜 .... 여기저기서 본 테스트케이스 다 되는데.. 답은 아니라 할 때 정말 막막하다 ㅎ
특히 이 문제는 풀이도 별로없다... 후 .....
진짜진짜진짜 답답해 미치는 줄 알았다...
여기저기서 본 테케를 맞출 수 있던건 1시간 만에 풀었는데
자꾸 5%에서 에러가 떠서 한시간동안 에러 찾는건 정말 .. ^^.............................................
만약 정말 나는 다 맞았는데 5%에서 걸린다. 하시는 분들 여기보세요 !!!!!!!!!!!!!!!
" elif ('p>' in pop_) and (pop_ != '/p>') : "
다들 어떻게 푸냐에 따라서 다르겠지만 저는 <p> 태그인지 확인하는 부분을 위에처럼 조건을 줬는데요 !
사실 <p> 안에는 여러 태그가 들어올 수 있짢아요
그 때 만약 <pp>가 들어온다면 ... ?
제가 단순하게 판단한 조건은 <p>가 아니라 <pp>인데도 <p> 라고 판단할거에요
이런식으로 <div> <main> <p>와 같이 고정된 태그에 대해서 조건을 불명확하게 하면 5%에서 에러나는거 같아요..
그래서 저는 밑에 풀이 보면 if else 문으로 p인지 아니면 pip>와 같이 p로는 끝나지만 p는 아닌건지 판별을 한번 더 해줬어요
으앙 ㅜ 나 이제 집갈거야 ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ
from collections import deque text = input().strip().split('<')[1:] text_que = deque(text) hey = ['main>', 'div', 'p'] end = ['/main>', '/div>', '/p>'] temp_for_p = '' for i in range(len(text)): sign = 0 pop_ = text_que.popleft() if ('main>' in pop_) and (pop_ != '/main>'): continue elif ('p>' in pop_) and (pop_ != '/p>') : p_list = pop_.split('>') if p_list[0]!= 'p' : p_list[0] = '' new_te = ''.join(p_list) temp_for_p += new_te else : temp_for_p += p_list[1] elif 'div title="' in pop_ : pop_ = pop_.replace('"','') p_list = pop_.split('=') print('title : '+ p_list[1][:-1].strip()) elif pop_ in end : if '/p>' == pop_ : temp_temp_ = temp_for_p.split() temp_temp_temp =' '.join(temp_temp_) print(temp_temp_temp.strip()) temp_for_p = '' elif '>' in pop_ : p_list = pop_.split('>') if p_list[0] not in hey : p_list[0] = '' new_te = ''.join(p_list) temp_for_p += new_te
'얼렁뚱땅 백준 문제풀이' 카테고리의 다른 글
[백준 문제풀이] 얼렁뚱땅 3079번 입국심사 풀이 (0) 2022.08.19 [백준 문제풀이] 얼렁뚱땅 16935번 배열 돌리기 3 풀이 (0) 2022.08.18 [백준 문제풀이] 얼렁뚱땅 15787번 기차가 어둠을 헤치고 은하수를 풀이 (0) 2022.08.17 [백준 문제풀이] 얼렁뚱땅 22860번 폴더 정리 풀이 (0) 2022.08.16 [백준 문제풀이] 얼렁뚱땅 10994번 별 찍기-19 풀이 (0) 2022.08.16