반응형

파이썬 문자열 7

[파이썬, Python] 백준 5525: IOIOI

문제 https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 코드 n = int(input()) m = int(input()) s = input() s = s[s.find("IOI"):s.rfind("IOI")+3] start, end = 0, 0 cnt = 0 while end < m: if s[end:end + 3] == "IOI": end += 2 if end - start ==..

[파이썬, Python] 백준 17413: 단어 뒤집기 2

문제 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 코드 s = input() stack = [] ans = [] reverse = True for i in s: if i == ' ': while stack: ans.append(stack.pop()) ans.append(i) elif i == '': reverse = True ans.append(i) else: if not reverse: ans.append(..

[파이썬, Python] 백준 1120: 문자열

문제 https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 코드 a, b = input().split() ans = list() for i in range(len(b) - len(a) + 1): cnt = 0 for j in range(len(a)): if a[j] != b[i+j]: cnt += 1 ans.append(cnt) print(min(ans)) 설명 우선 각 입력값을 받아준다. b의 개수에서 a의 ..

[T-SUM] 2주차 자료 - Hello World! Hello Python!

오늘의 내용 미리보기 본문 우선 앞서 다운로드한 Jupyter Notebook을 실행합시다. 작업 표시줄 - 찾기 - Jupyer Notebook 검색 - 실행 그리고 원활한 수업 진행을 위해 폴더도 하나 만들어봅시다. 우측 상단에 버튼이 있어요. 그러면 중간에 폴더가 하나 짠하고 생깁니다. 이름을 바꿔줍시다. 폴더 옆에 체크박스를 클릭하면 왼쪽 위에 버튼이 생겨요. 원하는 폴더명으로 바꿔주고 폴더에 들어갑시다. 폴더에 들어가서 다시 New 버튼을 통해 파일을 하나 만듭시다. Python 3라고 되어있는 버튼을 눌러서 생성합시다. 첫 파이썬 파일을 생성했어요. '.ipynb' 라는 확장자는 Jupyter Notebook에서 사용하는 확장자 이름입니다. 보통 일반적인 파일은 '파일이름.py' 와 같이 py..

T-SUM 멘토링 2023.06.08

[파이썬, Python] 백준 3036: 링

문제 https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net 코드 from math import gcd n = int(input()) rings = list(map(int, input().split())) for i in range(1, n): x = gcd(rings[0], rings[i]) print(f'{rings[0] // x}/{rings[i] // x}') 설명 두 수의 최대공약수를 알아내서 최대공약수로 나눈 수를 형식에 맞게 출력하면 되는 문제였다. math에 있는 gcd..

[파이썬, Python] 백준 2908: 상수

문제 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 코드 a, b = input().split() a = int(a[::-1]) b = int(b[::-1]) if a > b: print(a) else: print(b) 설명 우선 a와 b를 뒤집어서 읽는다는 조건이 있었으므로 숫자를 뒤집어주기 위해 문자열로 입력 받아준다. 이후 각각 a와 b를 뒤집어서 정수로 만들어 주는데, [::-1] 과 같은 형식으로 사용한다. 이는 문자열 슬라이싱을 이용한 방법인데..

[파이썬, Python] 백준 10926: ??!

문제 https://www.acmicpc.net/problem/10926 10926번: ??! 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때 www.acmicpc.net 코드 id = input() print(id + "??!") 어렵게 생각할 것 없이 간단한 문제다. input 함수가 문자열도 받을 수 있다는 것을 알 수 있다. '+' 기호로 출력을 같이 할 수 있다는 것도 알 수 있다. 설명 문제 자체는 어렵지 않지만 '??!' 라는 단어를 붙여야 하기에 조금 어려웠을 수 있다. '+' 기호를 사용해서 출력을 하게 된다면 띄어쓰기 없이 출력이 가능하다.

반응형