목록코팅테스트/백준 문제 모음 (296)
For Programmer

n = int(input()) for _ in range(n): array = list(map(str, input())) sum = 0 #출력할 값 c = 1 #O가 반복되면 해당값을 증가 OR X를 만나면 1로 다시 초기화 for i in array: if i =="O": sum += c c += 1 else: c = 1 print(sum) -> O를 만나면 C를 1씩 상승시키면서 SUM에다가 더해주면된다. 만약 X가 나올경우 C를 다시 1로 초기화 해준다.

a = int(input()) b = int(input()) c = int(input()) product = a*b*c result = list(str(product)) # a*b*c 의 곱을 문자열로 바꿔 list형으로 저장 for i in range(10): print(result.count(str(i))) #result내부 문자열 i 의 개수를 샌다. -> list내장 함수를 이용하면 쉽게 풀 수 있다. 우선 list("abc") 하게되면 리스트에 문자열 "abc"가 통으로 저장되는 것이 아닌 a , b , c 따로 list에 저장되게 된다. 이점을 이용하여 a*b*c 의 계산 값을 문자열로 바꾸어 list에 저장해준다. 그 후 list의 내장함수 count를 이용해 0~9 까지의 수를 문자열로 변..

해당 문제는 입력받는 방식에 따라 int 방식과 str(문자열) 방식 2가지로 해결할 수 있다. 우선 첫번째 방식은 int 값을 입력받는 방식으로 문제를 해결하는 방법이다. 1. int 방식으로 문제를 해결하기. a = int(input()) count = 0 original = a #초기 입력값 저장 while True: left = a // 10 #각자리의 숫자를 더하기 위한작업(10의자리) right = a % 10 #각자리의 숫자를 더하기 위한작업(1의자리) sum2 = left + right #각 자리를 더해준다. new = right * 10 + sum2 % 10 #새로운수 만들기(주어진 수의 오른쪽 자리수(10의자리)와 앞에서 구한 합의 오른쪽자리(1의자리)의 합) count += 1 #연산..

-> 위와 같은 문제는 과연 언제 반복문을 빠져올까를 고민해야 한다. 문제에 테스트 케이스의 개수에 제한을 두지 않았기 때문이다. 이럴때 사용할 수 있는 문법이 try,except구문이다.(자바의 try,catch 구문과 비슷) try - except 구문 설명 파이썬에서 구문 오류가 발생 할 때 해결할 수 있는 코드이다. 프로그램 중에는 사용자가 무엇인가를 입력해야 하는 경우 에러가 발생할 가능성이 있다. 숫자를 입력해야 하는데 문자를 입력한다던가 실수를 입력해야 하는데 정수를 입력하는 등이 그런 예이다. 이러한 에러가 발생할 여지가 있는 경우에 try - except 구문을 이용하면 에러가 발생돼도 프로그램이 멈추지 않고 계속 진행될 수 있도록 만들 수 있다. try - except 구문의 기본적인 ..

-> 문자열 * 숫자 를 파이썬에서는 제공하기 때문에 쉽게 풀 수 있다. 나의코드 import sys n = int(sys.stdin.readline()) for i in range(1,n+1): print("*"*i)

-> 여기서도 format함수를 이용하면 쉽게 출력할 수 있다. import sys t = int(sys.stdin.readline()) for i in range(1,t+1): a,b = map(int,sys.stdin.readline().split()) print("Case #{0}: {1} + {2} = {3}".format(i,a,b,a+b))

-> 입력에 시간이 다르기 때문에 기존의 input() 을 사용할 경우 범위가 넓어지면 넓어 질수록 입력에 시간이 오래 걸린다. 따라서 입력시간이 빠른 sys.stdin.readline() 을 사용하자. 다음은 백준 15552번 문제이다. 나의 코드 import sys n = int(input()) for _ in range(n): a, b = map(int,sys.stdin.readline().rstrip().split()) print(a + b) -> 여기서는 숫자를 입력받기 때문에 rstrip을 사용해도되고 안해도되는데 나중에 문자열을 저장하고 싶을 경우 개행(\n)키는 빼고 저장해준다.