티스토리 뷰
728x90
6581번: HTML
원래의 HTML 문서가 입력으로 주어진다. 이 텍스트는 단어와 HTML 태그들로 이루어져 있으며, 태그는 한 개 이상의 공백문자나 탭, 개행 문자 등으로 구분된다. 단어는 연속된 알파벳, 숫자, 또는
www.acmicpc.net
- 접근법
입력 받는 부분이 제일 까다로웠던 간단한 문자열 구현문제.
입력의 끝은 개행문자가 아닌 Ctrl+D로 끝난다.
전체 문자를 받고, 그것들을 단어별로 나누고 연속된 공백은 한개의 공백으로 처리하여 리스트에 저장한다.
그 후 리스트 요소들을 순차적으로 탐색하면서 태그를 만나면 즉시 태그에 해당하는 출력을 갱신하고, 단어들이라면 단어들을 연결시켜주면서 담겨있는 문장의 길이가 80이 넘으면, 넘기전으로 회기하여 출력하고 넘는 순간의 단어는 다시 다음 줄의 첫 단어로 초기화 시켜준다.
- 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import sys
full_sentence=""
for sentence in sys.stdin: # ctrl+D 입력까지 모든 줄을 입력 받는다
full_sentence+=sentence
result_sentence=full_sentence.split() # 다중 공백 제거 및 단어 별 리스트화
hr=""
temp_list=[]
temp_line_text=""
for word in result_sentence : # 단어별 탐색
if word=='<br>' : # <br> 태그면 지금까지 출력해야할 문장 출력 후 '줄바꿈'
temp_line_text = ' '.join(temp_list)
temp_list = []
print(temp_line_text)
elif word=='<hr>' : # 구분선 출력
hr=""
if len(temp_list)!=0 : # 첫지점에서 구분선 출력이 아니라면, 지금까지 출력해야할 문장 출력 후 구분선 출력
temp_line_text=' '.join(temp_list)
temp_list=[]
print(temp_line_text)
for _ in range(0, 80):
hr+='-'
print(hr)
else :
temp_list.append(word) # 단어들이면 계속 합쳐준다
temp_line_text=' '.join(temp_list)
if len(temp_line_text)>80 : # 합치다가 80줄이 넘으면
temp_list.pop(-1) # 넘는 단어 빼고
temp_line_text = ' '.join(temp_list) # 다시 합쳐서 출력
print(temp_line_text)
temp_list=[]
temp_list.append(word) # 다음 줄은 넘는 단어부터 시작
temp_line_text=' '.join(temp_list) # 마지막 줄 출력
print(temp_line_text)
|
cs |
'Problem Solving > BOJ' 카테고리의 다른 글
[Python3] 백준 - 9997 폰트 (0) | 2021.01.25 |
---|---|
[Python3] 백준 - 10830 행렬 제곱 (0) | 2021.01.24 |
[Python3] 백준 - 1501 영어 읽기 (0) | 2021.01.23 |
[C/C++] 백준 - 1298 노트북의 주인을 찾아서 (0) | 2021.01.16 |
[C/C++] 백준 - 2376 단말 정점들의 거리 (0) | 2021.01.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Data Handling
- P-Stage
- NLP 구현
- 네트워킹데이
- C++
- 알고리즘
- 부스트캠프 AI Tech
- pandas
- 데이터연습
- DeepLearning
- dfs
- 백트래킹
- cnn
- Unet
- 데이터핸들링
- 프로그래머스
- Vision AI 경진대회
- AI 프로젝트
- 다이나믹프로그래밍
- 그리디
- ResNet
- 백준
- 이분탐색
- 공공데이터
- 동적계획법
- python
- Unet 구현
- DACON
- 코딩테스트
- 브루트포스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함