[백준 : PYTHON] 7단계 문자열

2021. 2. 17. 18:30· 문제/백준

https://www.acmicpc.net/step/7

 

문자열 단계

정수를 문자열로 입력받는 문제. Python처럼 정수 크기에 제한이 없다면 상관 없으나, 예제 3은 일반적인 정수 자료형에 담기에 너무 크다는 점에 주목합시다.

www.acmicpc.net

7단계 문제들은 문자열이였다. 문자열을 활용하는 방법들을 다양하게 생각 할 수 있는 시간이였다. 예를 들어 for-in문에 리스트가 아닌 문자열을 써볼 수 있는 시간이였다. 또한 문자열에 사용되는 다양한 내장함수들을 활용 해 볼 수 있었다. 각 자료형에 맞는 내장함수들을 잘 알고 적재적소 사용 하는 법을 익혀야겠다.

 

백준 5622

alphabet = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
num = [2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9]

words = input()
result = 0
for i in words:
    change = num[alphabet.index(i)]
    result += change +1
print(result)

각 알파벳에 해당하는 숫자를 대입해서 문제를 풀었다.

alphabet = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ']

words = input()
result = 0
for i in alphabet:
    for j in i:
        for x in words:
            if j == x:
                result += alphabet.index(i) + 3
print(result)

다른 사람들이 푼 코드를 봤다.
숫자를 바로 대입해주지 않고 for문을 반복적으로 사용하고 시간의 규칙끼리 묶어서 풀어주었다.
그랬더니 코드가 훨씬 간결해졌다.
반복적인걸 깔끔하게 묶는 연습을 해야겠다.

 

백준 2491

croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']

words = input()

for i in croatia:
    words = words.replace(i, 'x')

print(len(words))

replace함수를 사용하면 문자열 안의 특정 값을 다른 값을 바꿀 수 있다. 

2~3글자를 1글자로 인식해서 숫자를 세주면 된다.

 

 

백준 1157

words= input().upper()
alphabet = list(set(words))

cnt_li = []
for i in alphabet:
    cnt = words.count(i)
    cnt_li.append(cnt)

if cnt_li.count(max(cnt_li)) > 1:
    print('?')
else:
    result = alphabet[cnt_li.index(max(cnt_li))]
    print(result)

 

입력 받은 문자를 upper함수를 사용해서 대문자로 변환해준다.

set함수를 이용해서 중복된 알파벳을 지운다.

각 알파벳의 갯수를 count함수를 이용해서 세어 중 후 append함수를 사용해서 추가해준다.

가장 많이 사용된 알파벳 수를 max함수를 사용해서 세어 준다.

그 후 if문을 통해 가장 많이 사용된 알파벳이 여러개인지 판단해서 ? 혹은 알파벳을 출력한다.

 

백준 1316

N = int(input())
cnt = 0
for i in range(N):
    words = input()
    for x in range(len(words)): 
        if x == len(words)-1:
            pass
        else:
            if words[x] != words[x + 1]:
                if words[x] in words[x+1:]:
                    cnt += 1
                    break
print(N - cnt)

  그룹단어가 아닌 단어들의 갯수를 세어서 총 단어 갯수에서 빼주었다.

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

[백준 : PYTHON] 6단계 함수  (0) 2021.02.09
[백준 : PYTHON] 5단계 1차원 배열  (0) 2021.02.02
[백준 : PYTHON] 4단계 while문  (0) 2021.01.30
[백준 : PYTHON] 3단계 for문  (0) 2021.01.29
[백준 : PYTHON] 2단계 if문  (0) 2021.01.27
'문제/백준' 카테고리의 다른 글
  • [백준 : PYTHON] 6단계 함수
  • [백준 : PYTHON] 5단계 1차원 배열
  • [백준 : PYTHON] 4단계 while문
  • [백준 : PYTHON] 3단계 for문
개발원슝이
개발원슝이
꾸준히 개발공부를 합니다.
꾸준히 개발슝이꾸준히 개발공부를 합니다.
개발원슝이
꾸준히 개발슝이
개발원슝이
전체
오늘
어제
  • ALL (240) N
    • 프로젝트 (34)
      • clone coding (19)
      • mini project (5)
      • Team project(with KIC) (10)
    • 문제 (37)
      • 백준 (7)
      • 프로그래머스 (14)
      • 정보처리기사실기 (16)
    • 설치 (9)
    • 개발 기초 (13)
    • 프로그래밍언어 (122) N
      • HTML (16)
      • CSS (17)
      • JavaScript (20) N
      • JAVA (13)
      • JSP (10)
      • Python (22)
      • C언어 (24)
    • 프레임워크 (6)
      • Spring (3)
      • Django (3)
    • DB (2)
      • MySQL (2)
    • AWS (1)
    • 오류 (2)
    • 이것저것 (6)
    • 전공자 개발 (3) N
    • 비전공자 개발 (5)

블로그 메뉴

  • 네이버블로그(강의노트)
  • GitHub
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 점프 투 파이썬
  • 백준
  • 파이썬공부
  • 홍정모교수님
  • 따배씨
  • 홍정모의 따라하며 배우는 C언어
  • javascript
  • 인프런
  • 생활코딩
  • 코딩테스트

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발원슝이
[백준 : PYTHON] 7단계 문자열
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.