![[백준 11899] 괄호 끼워넣기 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm0M9N%2FbtsL2TzKavY%2FMjp6e2CAmvLykD7AzfVDKk%2Fimg.jpg)
https://www.acmicpc.net/problem/11899 스택을 활용해 문자열을 처리했다.여는 괄호는 스택에 push닫는 괄호는 스택이 비어있지 않고 top이 여는 괄호면 pop, 그렇지 않으면 스택에 push하는 방식으로, 최종적으로 남은 괄호 개수를 셌다. import sysinput = sys.stdin.readlinen = input().strip();stack = []for char in n: if char == ')': if stack and stack[-1] == '(': stack.pop() else: stack.append(char) else: stack.append(char)print(len(stack))
![[백준 17827] 달팽이 리스트 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeCCeX%2FbtsL22Dzo5U%2F1O4AkyoRyMzIfKgNR2qqS1%2Fimg.jpg)
https://www.acmicpc.net/problem/17827 모듈러 연산을 이용하는 문제였다. 첫 순회를 돌고, 그 다음부터는 n - v + 1의 길이만큼만 순회하는 방식으로 식을 구성했다. import sysinput = sys.stdin.readlinen, m, v = map(int, input().split())arr = list(map(int, input().split()))for i in range(m): cnt = int(input()) if cnt
![[백준 27111] 출입 기록 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuJ12j%2FbtsL2yijfvl%2F7lLocDMkx64AzZvRhliom0%2Fimg.jpg)
https://www.acmicpc.net/problem/27111 처음에는 list로 시도하다, 코드가 비교적 직관적(in, not, add, remove)인 set 함수로 시도하게 되었다. 후에 알게 되었는데, 시간복잡도 관점에서 set 자료구조가 O(1)로 상당한 이점을 보는 것을 알게 되었다. 아래 경우를 체크해서 인원을 관리했다.이미 있는 사람이 들어오는 경우없는 사람이 나가는 경우기록이 끝난 후 아직 건물에 남아있는 사람들 import sysinput = sys.stdin.readlinen = int(input());building = set()cnt = 0for _ in range(n): a, b = map(int, input().split()) if b == 1: if a in b..
![[프로그래머스] 줄 서는 방법 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboQZbw%2FbtsHUViB3AQ%2FwRXO2XAlaJQ9MwBbhk7gj0%2Fimg.jpg)
https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제에서 k는 n! 이하의 자연수라고 나와있다. 이 문장이 힌트이다. 문제의 예시를 보자. 맨 앞의 숫자가 1일 때 1을 맨 앞의 원소로 갖는 리스트는 [1, 2, 3], [1, 3, 2]이다. 이 개수는 (n - 1)!이다. 문제 보기는 n = 3이므로 리스트 개수는 2개 이다. 그 리스트 안에서 2로 시작하는 리스트는 [1, 2, 3]이다. 이 개수는 (n - 2)!이다. 뭔가 규칙이 보인다. ..
![[Goorm level] 회전 배열 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkXHd1%2FbtsHUQVOGOn%2Fgr2GunZBwkah5nTdIOdW80%2Fimg.jpg)
회전 배열 - 구름LEVEL 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 배열을 돌리는 부분은 파이썬의 deque.rotate()를 사용하면 된다. 그리고 회전할 때의 조건을 잘 읽지 않아 삽질을 오래 했는데 (문제를 잘 읽어야 한다.) 매 회전할 때마다 리스트의 첫 값을 가져와 그 첫 값을 회전하는 것이다. 그걸 m번 반복하는 것이므로, 무조건 횟수가 m으로 지정되어 있는 것이 아니다. 공교롭게도 배열을 회전하는 횟수를 m으로만 지정해도 테스트케이스가 통과되어서 맞왜틀을 계속 외치고 있었는데, 문제를 여러 번 읽어보니 내가 잘못 구현하고 있었음을 깨달았다. from collections import dequen, m = map(int, ..
![[프로그래머스] 124 나라의 숫자 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwECM5%2FbtsHUAFzUsY%2FnJ7umLiGnXiz4LnGhv5DuK%2Fimg.jpg)
https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 124 나라는 3진법과 유사하다.1, 2, 4만 사용10진법이 4일 경우에 자릿수가 하나 증가함10진법이 7, 10일 경우에 124 나라 숫자 10의 자릿수가 변경됨 10진법을 3진법으로 바꿀 때처럼, 3으로 나눌 수 없을 때까지 나누고 역순으로 변환된 수를 뒤집으면 된다.3진법에서의 나머지가 124 나라일 때의 경우로 대치해주면 된다.0일 때, 11일 때, 22일 때, 4 def solution(..
![[프로그래머스] 오픈채팅방 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpSfEe%2FbtsHVuRi5Qe%2FtHHOqoYJxXHt35DgREaut1%2Fimg.jpg)
https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제에서는 Phase가 두 개로 나뉜다.오픈채팅방에 입장한 후 이름이 변경될 수 있다. 이를 반영해야 한다.오픈채팅방의 모든 기록이 처리된 후 최종적인 결과를 보기 원한다. 특히 이 코드는 딕셔너리를 사용했다. 딕셔너리는 중복되는 key를 허용하지 않기 때문에 같은 key(uid)로 새로운 이름이 들어오면 기존 이름은 새로운 이름으로 대체된다. 오픈채팅방에서 같은 uid로 새로운 이름이 들어오..