여니의 취준 준비 253

[n11899] 괄호 끼워넣기 in python

HTML 삽입 미리보기할 수 없는 소스 array=list(input()) stack=[] answer=0 for i in range(len(array)): if array[i]=='(': stack.append("(") continue if len(stack)!=0 and stack[-1]=="(": stack.pop() else: answer+=1 print(answer+len(stack)) 스택의 성질을 이용하여 푼 문제! ( 괄호면 stack에 넣고 ) 괄호면 짝이 있는지 없는지 stack을 살펴봐야한다. 짝이 없으면 answer+=1 있으면 stack.pop()

[n1822] 차집합 in python

set() 말고 list로 해서 시간초과가 났었지만 해결! 실행시간은 약 1000ms a,b=map(int,input().split()) aArray=set(list(map(int,input().split()))) bArray=set(list(map(int,input().split()))) temp=set() for i in aArray: if i not in bArray: temp.add(i) print(len(temp)) print(*sorted(temp)) - 연산자를 이용하면 차집합 결과를 쉽게 도출해낼 수 있었다...! 띠용 a,b=map(int,input().split()) aArray=set(list(map(int,input().split()))) bArray=set(list(map(int,..

[n1755] 숫자 놀이 in python

sorted, lambda, dictionary를 이용해서 풀 수 있었던 정렬 및 문자열 문제! 리스트에 숫자와 문자를 같이 넣어주는 생각을 바로 떠올리지 못했음! m, n = map(int, input().split()) dic = {'1': 'one', '2': 'two', '3': 'three', '4': 'four', '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine', '0': 'zero'} temp = [] answer = [] for i in range(m, n + 1): answer.append([i, ''.join(dic[k] for k in str(i))]) answer.sort(key=lambda x:x[1]) for i..

[n12760] 최후의 승자는 누구? in python

단순 구현문제! 가장 큰 수를 가진 플레이어가 여러명일 수 있다는 조건을 빼먹고 구현하다가 시간을 많이 버린 문제; n, m = map(int, input().split()) array = [] for i in range(n): temp = sorted(list(map(int, input().split()))) array.append(temp) answer = [0 for _ in range(n)] for i in range(m): temp = [] for j in range(n): temp.append(array[j][i]) maxnum = max(temp) for j in range(n): if maxnum == temp[j]: answer[j] += 1 player = max(answer) resu..

[n16935] 배열 돌리기 3 in python

전형적인 구현 문제! 3번 , 4번 연산에서 연산 후 바뀐 행과 열의 값을 바꿔주지 않아서 오류가 났었다! 1,2번 연산에서는 단순히 상하좌우 대칭만 하는거라 굳이 이 과정이 필요 없다 하지만 회전하는 부분에서는 이 과정이 필수 +_+ def func(num): global array, n,m # 1번 연산 -> 배열을 상하반전 if num == 1: temp = [] for i in range(n): temp.append(array[n - 1 - i]) array = temp del temp return # 2번 연산 -> 배열 좌우반전 if num == 2: temp = [] for i in range(n): temp.append(array[i][::-1]) array = temp del temp r..

[n8394] 악수 in python

예제문제를 보다보니 점화식이 보였다 n=1일땐 1 n=2일땐 2 n=3일땐 3(1+2) n=4일땐 5 (2+3) n=5일땐 8 (3+5) 수가 매우 커질 수 있기 때문에, 마지막 자리만 출력한다. > dp[-1]%10을 해줘야 올바른 출력값이 나오게 된다. n = int(input()) dp = [0 for _ in range(n + 1)] dp[1] = 1 dp[2] = 2 for i in range(3, n + 1): dp[i] = dp[i - 1] % 10 + dp[i - 2] % 10 print(dp[-1]%10) 시간이 오래 걸려서 더 좋은 코드를 찾아보았다. dp 배열을 쓰지 않아도 변수 2개로 충분히 구할 수 있었다. (스왑) 그리고 %60을 왜 써주는 지 아직 잘 모르겠지만.. 좀 더 연구..

[n9742] 순열 in python

재귀함수 너무 어렵다 ㅠㅠ.. 매번 풀어도 헷갈리고 적응 안되는 것들 중 하나가 재귀함수 :( 너무 지저분하게 코드를 짠 것 같아서 좀 더 고민해보고 찾아봐야겠다 ㅠㅠ 일단은 for문 안에서 1차적으로 첫번째 숫자를 고른 뒤 permu 함수를 실행한다. permu 함수 내에서 for문을 또 따로 돌려주고 그 안에서 재귀함수를 호출하여 순열을 찾아나가면 된다. 만약 현재 값이 입력값과 개수가 똑같고 answer_num이 n과 같다면? 답을 찾은것이다! answer_num = 0 answer = '' def permu(n, cnt): global answer_num global answer if len(answer) == len(word): answer_num += 1 if answer_num == n: r..