본문 바로가기

문자열20

[ 파이썬(python) ] 백준 3986 - 좋은 단어 📍 백준 3986 - 좋은 단어 문제: 백준 3986 - 좋은 단어 💡 나의 풀이 어떤 방식으로 풀어야 할지 고민하다 stack으로 풀었는데 정답판정을 받았다. 문제에서 아치형 곡선으로 만나야 한다고 나와있는데 괄호 쌍맞추는 문제처럼 stack에 들어오는 현재 값과 이전에 있던 stack[-1]과 비교해서 같으면 pop() 다르면 s[i]를 추가하는 방법으로 풀면 된다. 맨 처음 stack이 없을 때 값을 어떻게 넣지??라고 생각하다 stack에 값이 있을 때, 없을 때로 나눠서 조건을 작성했다. 여기서 나의코드와 다른 사람 코드의 차이점은 13 ~ 19번 인데, stack 조건을 and로 합치고 아닌 경우에는 append를 줘도 같은 결과가 나왔길래 가져왔다. 다음 사진은 예제 입력 1을 손으로 그리면.. 2021. 7. 6.
[ 파이썬(python) ] 백준 4949 - 균형잡힌 세상 📍 백준 4949 - 균형잡힌 세상 문제: 백준 4949 - 균형잡힌 세상 💡 나의 풀이 문제의 조건을 잘 따져야 하는데 마지막 조건(짝을 이루는 두 괄호가 있을 때, 그 사이에 있는 문자열도 균형이 잡혀야 한다.)은 문자열 공백을 똑같이 줘야 하는 건가?라는 생각이 들면서 조금 헷갈렸다. 그러나 문제에 주어져있지 않기때문에 고려하지 않아도 된다. 올바른괄호를 찾는 문제는 여러 가지 T.C를 넣어가면서 에러가 걸리지 않게 로직을 짜는 것이 중요한 것 같다. 논외로 while True와 while 1의 차이를 물어보는 질문들이 꽤 있었는데, 결론부터 말하자면 python 3에서 두 개의 코드의 시간 차이는 없다. 조금 덧붙여서 말하자면 python 2에서는 while 1이 더 약 3 ~ 4초 가량 더 빠른.. 2021. 7. 5.
[ 파이썬(python) ] 백준 4458 - 첫 글자를 대문자로 📍 백준 4458 - 첫 글자를 대문자로 백준 4458 - 첫 글자를 대문자로 ⚡️ 나의 풀이 제일 첫 글자에 upper() 함수를 이용해 대문자로 바꾸고 나머지 index는 그대로 더해준다. n = int(input()) for _ in range(n): s = input() temp = s[0].upper() ans = temp + s[1:] print(ans) 2021. 6. 22.
[ 파이썬(python) ] 백준 10820 - 문자열 분석 📍 백준 10820 - 문자열 분석 백준 10820 - 문자열 분석 ⚡️ 나의 풀이 문자열 n개가 몇 번째까지인지 모르기 때문에 try except를 사용했다.(except EOFError) 소문자: islower(), 대문자: isupper(), 숫자: isdigit(), 공백: else 각 count누적 while True: try: lower_case, upper_case, number, blank = 0, 0, 0, 0 for i in input(): if i.islower(): lower_case += 1 elif i.isupper(): upper_case += 1 elif i.isdigit(): number += 1 else: blank += 1 print(lower_case, upper_ca.. 2021. 6. 17.
[ 파이썬(python) ] 백준 7567 - 그릇 📍 백준 7567 - 그릇 백준 7567 - 그릇 ⚡️ 나의 풀이 단순 구현 문제인데, 그릇을 포갤 때의 방향이 일치하는지 아닌지 판별하면 된다. 맨 처음 그릇은 이전 그릇과 비교할 수 없기 때문에 맨 처음 그릇의 점수 10점을 선언 해준 상태에서 반복문의 범위를 index가 1인 지점부터 len(bowl)까지 확인한다. 반복문 내부에서 이전 그릇과 같으면 5점을 누적시키고, 다르면 10점을 누적시킨다. bowl = input() score = 10 for i in range(1, len(bowl)): if bowl[i-1] == bowl[i]: score += 5 else: score += 10 print(score) 2021. 6. 14.