코딩테스트(11)
-
백준 9012 파이썬 문제풀이.
import sys def is_balanced(s): stack = [] for char in s: if char == '(': stack.append(char) elif char == ')': #stack에 빈값이 없고(True 이며) stack의 끝자리가 '(' 문자인 경우, if stack and stack[-1] == '(': #맨 마지막 것을 pop 한다. stack.pop() else: return False # not stack = True라는 뜻. return not stack a = int(sys.stdin.readline()) for _ in range(a): s = input().strip() if is_balanced(s): print('YES') else: print('NO') ..
2023.08.07 -
백준 10773 파이썬 문제풀이
import sys a = int(sys.stdin.readline()) Stack = [] result = 0 for _ in range(a): b = int(sys.stdin.readline()) if b != 0: Stack.append(b) else: Stack.pop(-1) print(sum(Stack)) append와 pop의 개념을 확인하는 문제여서 어렵지 않게 마무리했다.
2023.08.07 -
백준 2798 파이썬 문제풀이
import sys a, b = map(int, sys.stdin.readline().split()) arr = list(map(int, input().split())) result = 0 for i in range(a): for j in range(i+1, a): for k in range(j+1, a): if arr[i] + arr[j] + arr[k] > b: continue else: # 일단 저장하고, 그다음 계속 result와 다음 더한 값을 비교하기. result = max(result, arr[i] + arr[j] + arr[k]) print(result) 저 max를 하지 않고 result를 list로 저장해 append하고 max(result) 한 사람도 있었다. 호오~~ 기발하다. h..
2023.08.07 -
백준 2444 풀기.
다른 사람들은 다 어찌 저찌 풀었는데 나는 되게 희한하게 풀었다. 근데 방식은 거의 비슷한 듯? 이게 간단하게 도출되는 문제인가..? 아무튼 import sys temp = int(sys.stdin.readline()) add_num = 1 for i in range(temp): print("", end=" " * (temp - i-1)) if i == 0 : print("*") else: print("*" * add_num) add_num += 2 add_num -= 4 for i in range(temp): print("", end=" " * (i+1)) print("*" * add_num) add_num-=2 이런 식으로 써서 해결봤다.
2023.07.04 -
백준 2562, 2743 브론즈 기초문제 풀기. 몰랐던 것. str.strip()
import sys x = sys.stdin.readline() print(len(x.strip())) 왜 한 글자가 더 나오지? 했는데 readline()은 기본적으로 개행이 숨어있어서 +1이 된다. 그런데 input()을 자제해야 속도가 좀 늘어난다고 했으니 띄어쓰기는 아무튼 빼줘야 한다. 변수.strip()을 하면 된다. strip()의 설명은 다음과 같다. leading(앞)과 trailing(뒤 라는 의역)의 whitespace를 없애준다. 공백 등을 사라지게 해준다는 의미. 이것을 사용해서 올바르게 출력할 수 있었다. import sys list1 = [] for i in range(9): x = int(sys.stdin.readline()) list1.append(x) max_index =..
2023.06.28