Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코테
- programers
- Android
- MVVM
- 알고리즘
- 자바
- baekjoon
- Flutter
- 안드로이드
- aws
- 파이썬
- softeer
- 머신러닝
- 아마존 웹 서비스
- 소프티어
- 현대sw
- 플러터
- 다트
- 코틀린
- 개발
- java
- 백준
- kotlin
- VSCode
- 스위프트
- GDSC
- Python
- 프로그래머스
- SWIFT
- DART
Archives
- Today
- Total
조준장 개발자 생존기
[baekjoon] 백준 3107번(파이썬): IPv6 본문
문제
3107번: IPv6
첫째 줄에 올바른 IPv6 주소가 주어진다. 이 주소는 최대 39글자이다. 또한, 주소는 숫자 0-9, 알파벳 소문자 a-f, 콜론 :으로만 이루어져 있다.
www.acmicpc.net
알고리즘
- 반복문을 통해 각 그룹을 확인한다.
- 0으로만 이루어진 그룹이 있다면 idx에 저장한다.
- 0으로만 이루어지지 않은 그룹은 0을 추가한다.
- 0으로만 이루어진 그룹은 반복문을 통해 IPv6의 길이가 8이 될 때까지 "0000"을 추가한다.
코드
import sys
IPv6 = list(map(str, sys.stdin.readline().strip("\n").split(":")))
idx = []
# 반복문을 통해 각 그룹을 확인
for i in range(len(IPv6)):
# 0으로만 이루어진 그룹의 idx 저장
if len(IPv6[i]) == 0:
idx.append(i)
continue
# 0으로 이루어지지 않은 그룹의 0을 추가
if len(IPv6[i]) < 4:
IPv6[i] = "0" * (4 - len(IPv6[i])) + IPv6[i]
# 0으로만 이루어진 그룹이 있다면
if idx:
# 반복문을 통해 IPv6 공백을 제거
for _ in idx:
del IPv6[idx[0]]
# IPv6의 길이가 8이 될 때까지 0으로만 이루어진 그룹에 "0000"을 추가
while len(IPv6) != 8:
IPv6.insert(idx[0], "0000")
print(":".join(IPv6))
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 16179번(파이썬): ZOAC (0) | 2022.05.20 |
---|---|
[baekjoon] 백준 19583번(파이썬): 싸이버개강총회 (0) | 2022.05.19 |
[baekjoon] 백준 2257번(파이썬): 화학식량 (0) | 2022.05.17 |
[baekjoon] 백준 15927번(파이썬): 회문은 회문아니야!! (0) | 2022.05.16 |
[baekjoon] 백준 12919번(파이썬): A와 B 2 (0) | 2022.05.15 |