728x90
반응형

python 105

[백준][Python] 1264. 모음의 개수

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 total = [] while 1: try: qStr = list(input()) if '#' in qStr: break else: total.append(qStr) except: break while 문과 try ~ except 문을 사용해서 #이 입력되면 입력이 종료되도록 설정하고 모든 입력을 문자로 저장하여 total에 리스트값들로 다시 저장했습니다. 🚀 문제 풀이 핵심 & 출력하기 cnt=0;mo=['a','e','i','o','u','A','E','I','O','U'] for i in total: for j in i: if j in mo: cnt+=1 print(cnt) cnt=0 모음으로 인정하는 a, e, i, o, u와 대문자들까지를 배열에 저장해놓고 ..

[백준][Python] 17413. 단어 뒤집기 2

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 string = list(input()) 일단 입력된 문자열을 문자 단위 리스트 형식으로 저장합니다. 🚀 문제 풀이 핵심 readyOutput = [] temp=[] br=0 for i,v in enumerate(string): if i == len(string)-1: if br != 1: temp.append(v) temp.reverse() readyOutput.append(temp) temp=[] if v == '') readyOutput.append(temp) temp=[] br=0 else: temp.append(v) else: if v == ' ': temp.reverse() temp.append(' ') readyOutput.append(temp) temp..

카테고리 없음 2022.08.29

[백준][Python] 10866. 덱

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 import sys n = int(sys.stdin.readline()) com = [list(sys.stdin.readline().split()) for _ in range(n)] 빠른 입력을 위해서 sys라이브러리를 사용해 sys.stdin.readline()으로 입력을 받았습니다. n에는 명령어의 개수를 입력받고 com에는 명령어들을 입력받았습니다. 🚀 문제 풀이 핵심 & 출력하기 deque=[] for i in com: lenD = len(deque) if i[0] =='push_front': deque.insert(0, i[1]) elif i[0] == 'push_back': deque.append(i[1]) elif i[0] == 'pop_front': i..

[백준][Python] 1158. 요세푸스 문제

🙆‍♂️문제 🙋‍♂️풀이 요세푸스 문제를 정리하자면 n과 k를 입력받고 1부터 n까지의 수가 원을 이루며 있는데 계속적으로 k번 째 수를 빼내는 것입니다. 1부터 시작되어서 3번 째 수를 빼내고 그 다음은 4부터 해서 6을 빼고 이런식으로 해서 다 빼내는 것입니다. 🚀 입력받기 import sys n,k = map(int ,sys.stdin.readline().split()) arr=[] for i in range(n): arr.append(i+1) n과 k를 입력받고 1부터 n까지수로 된 리스트를 만듭니다. 🚀 문제 풀이 핵심 jose=[] i=0 while len(arr) != 0: i+=k i = i % len(arr) - 1 jose.append(arr[i]) arr.pop(i) if i == -..

[백준][Python] 10845. 큐

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 import sys n = int(sys.stdin.readline()) com=[list(sys.stdin.readline().split()) for _ in range(n)] 시간 제한이 있기 때문에 빠른 입력인 sys.stdin.readline()을 통해서 입력을 받습니다. 이러면 엔터(\n)도 입력되는데 사실 상관이 없는게 엔터 입력된 부분을 접근하지 않아서 괜찮습니다. 🚀 문제 풀이 핵심 & 출력 queue=[] for i in com: lenQ = len(queue) if i[0] == 'push': queue.append(i[1]) elif i[0] == 'pop': if lenQ == 0: print(-1) else: print(queue[0]) que..

[백준][Python] 2163. 초콜릿 자르기

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 import sys n,m = map(int, sys.stdin.readline().split()) 가로 세로 값 n,m을 입력받습니다. 🚀 문제 풀이 핵심 if n==m: total = n*m-1 else: total = (n-1)+n*(m-1) 여러 가지를 경우를 생각해보면서 공식을 찾았습니다. n과 m이 같은 경우는 둘의 곱에 1을 빼면 되고 평소에는 (n-1)+n*(m-1)을 하면되는데 그림을 그리면 이해가 빨라집니다. 위처럼 3*4 초콜릿이 있을 때 (3-1)번인 2번 자르면 3번 자를 수 있는 초콜릿이 3개가 나오기 때문에 3 * (4-1)을 하여서 구할 수 있습니다. 이 둘을 더하면 (n-1)+n*(m-1)이 공식이 나옵니다. 🚀 출력하기 print(to..

[백준][Python] 1874. 스택 수열

🙆‍♂️문제 🙋‍♂️풀이 문제가 말이 어렵네요. 2가지 규칙이 있습니다. 1. PUSH는 오름차순으로 ( 입력값 상관 없이) 2. POP은 입력된 값대로 예를 들어서 총 수(n)을 8이라고 입력 받고 4 3 6 8 7 5 2 1을 입력받았다면 1 2 3 4를 PUSH 하고 POP 해서 4를 빼고 또 POP해서 3을 빼는.. 그렇게 POP해서 만든 리스트가 4 3 6 8 7 5 2 1이 되어야 합니다. 안되는 경우도 있는데 교착 상태에 빠지는 경우 입니다. 스택의 LIFO 특성 덕분에 a가 POP되어야 할 때 a위에 a보다 작은 b가 있다면 교착상태가 됩니다. 안되는 경우를 한 마디로 정의하면 list[i]이 list[i+1]보다 큰 경우 입니다. 🚀 입력받기 import sys n = int(sys.st..

[백준][Python] 9012. 괄호

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 import sys n = int(sys.stdin.readline()) ps = [list(input()) for _ in range(n)] 괄호 케이스 수를 n에 입력받고 괄호들은 ps리스트로 입력됩니다. 🚀 문제 풀이 핵심 & 출력 for i in ps: psStack=[] chk=1 for j in i: if j == '(': psStack.append('(') elif j ==')': if len(psStack) == 0: chk=0 break else: psStack.pop(len(psStack)-1) if len(psStack) == 0 and chk == 1: print("YES") else: print("NO") '('를 입력받으면 psStack이라는..

728x90
반응형