전체 글
오큰수 풀이
문제 링크: https://www.acmicpc.net/problem/17298 백준 알고리즘 기초 1/2 201에서 3번째 - 17298번 오큰수를 풀어보았다. 풀이: https://wiselog.tistory.com/111 이 코드를 참고했다. 파이썬은 리스트를 출력할 때 *를 붙이면 된다는 것을 알게 되었다. C++ Python n=int(input()) inp=list(map(int,input().split())) stack=[] res=[-1 for i in range(n)] for i in range(n): while stack and inp[stack[-1]]
쇠막대기 풀이
문제 링크: https://www.acmicpc.net/problem/10799 백준 알고리즘 기초 1/2 201에서 2번째 - 10799번 쇠막대기를 풀어보았다. 풀이: 스택을 이용한다. C++ Python stack=[] res=0 inp=list(input()) for i in range(len(inp)): if inp[i]=='(': stack.append('(') else: if inp[i-1]=='(': stack.pop() res+=len(stack) else: stack.pop() res+=1 print(res) Java
단어 뒤집기 2 풀이
문제 링크: https://www.acmicpc.net/problem/17413 백준 알고리즘 기초 1/2 201에서 1번째 - 17413번 단어 뒤집기 2를 풀어보았다. 풀이: 공백과 를 신경 써야 한다. 파이썬은 https://hongcoding.tistory.com/62 이 코드를 참고했다. C++ Python import sys inp=list(sys.stdin.readline().rstrip()) i=0 idx=0 while i
덱 풀이
문제 링크: https://www.acmicpc.net/problem/10866 백준 알고리즘 기초 1/2 200에서 8번째 - 10866번 덱을 풀어보았다. 풀이: 덱을 구현한다. C++ Python import sys stacks=[] def push_back(a): stacks.append(a) def push_front(a): stacks.insert(0,a) def pop_front(): if len(stacks)==0: print(-1) else: print(stacks[0]) del stacks[0] def pop_back(): if len(stacks)==0: print(-1) else: print(stacks[-1]) del stacks[-1] def size(): print(len(st..
요세푸스 문제 풀이
문제 링크: https://www.acmicpc.net/problem/1158 백준 알고리즘 기초 1/2 200에서 7번째 - 1158번 요세푸스 문제를 풀어보았다. 풀이: 요세푸스 순열을 구하는 문제이다. C++ Python n,k=map(int,input().split()) yose=[i+1 for i in range(n)] res=[] idx=0 for i in range(n): idx+=k-1 if idx>=len(yose): idx%=len(yose) res.append(str(yose.pop(idx))) print('',sep='') # sep을 해야 앞뒤로 공백이 안붙는다 Java
큐 풀이
문제 링크: https://www.acmicpc.net/problem/10845 백준 알고리즘 기초 1/2 200에서 6번째 - 10845번 큐를 풀어보았다. 풀이: 큐를 구현하면 된다. C++ Python import sys stacks=[] def push(a): stacks.append(a) def pop(): if len(stacks)==0: print(-1) else: print(stacks[0]) del stacks[0] def size(): print(len(stacks)) def empty(): if len(stacks)==0: print(1) else: print(0) def back(): if len(stacks)==0: print(-1) else: print(stacks[-1]) de..
에디터 풀이
문제 링크: https://www.acmicpc.net/problem/1406 백준 알고리즘 기초 1/2 200에서 5번째 - 1406번 에디터를 풀어보았다. 풀이: 명령어를 받아 수행하는 에디터를 구현하는 문제이다. 파이썬은 커서와 문자열을 구현해서 풀었더니만 시간초과가 나서, https://velog.io/@tkdduf727/%EB%B0%B1%EC%A4%80-%EA%B4%84%ED%98%B8-1406%EB%B2%88-%ED%8C%8C%EC%9D%B4%EC%8D%AC-Python-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0 여기를 참고했다. 리스트 두 개를 써서 왔다 갔다 한 풀이다. C++ Python import sys lstack=list(input()) rstack=[] n..
스택 수열 풀이
문제 링크: https://www.acmicpc.net/problem/1874 백준 알고리즘 기초 1/2 200에서 4번째 - 1874번 스택 수열을 풀어보았다. 풀이: 1부터 n까지의 수열을 스택에 넣고 빼면서 문제에서 입력받은 수열을 만들면 된다. C++ Python n=int(input()) stack=[] res=[] # 정답출력용 num=1 tf=True # 작업이 잘 수행되었는지 확인 for i in range(n): inp=int(input()) while num