일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 백준 2003
- 우테코
- 코딩테스트
- 부트캠프
- 우테코 프리코스
- dfs
- UML
- 13기
- 비전공자
- 삼성
- 우테코 7기
- 백준
- 삼성 청년 sw아카데미
- 마이스터고
- 취뽀
- 코테
- 디자인패턴
- 싸피 13기
- 파이썬
- 삼성 청년 SW 아카데미
- SWEA
- 코딩
- 삼성청년SW아카데미
- 프리코스
- 삼성 부트캠프
- 정보처리기사
- SSAFY
- 개발자
- 싸피
- 정처기
- Today
- Total
목록백준 (59)
룰루코딩

문제솔루션n = int(input())stack=[]cur=1ans=[]for _ in range(n): num = int(input()) while cur 0: for i in ans: print(i)깨달은 점먼저 스택구조를 이해하고 있어야 하는 문제다.스택은 LIFO특성을 가지고 있으며 Last in First out 로 제일 나중에 들어간 자료가 제일 먼저 나오는 것이다. 임의의 수열이 정해졌을때 그 수열을 스택을 이용해 만들 수 있는지를 묻는 문제이다.예시를 이해해보면8개의 수가 든 수열 [ 4, 3, 6, 8, 7, 5, 2, 1 ]을 스택을 이용해 만들어보자.stack = [1] -> push +stack = [1, 2] -> push +stack = [1..

문제솔루션while(True): text = input() if(text == "."): break stack = [] for i in text: if(i == "(" or i == "["): stack.append(i) if(i == ")"): if(len(stack) != 0 and stack[-1] == "("): stack.pop() else: stack.append(")") break if(i == "]"): if(len(stack) != 0 and stack[-1] ..

문제솔루션T = int(input())for _ in range(T): n,m = map(int,input().split()) stack = list(map(int,input().split())) result = 1 while stack: if stack[0] 0 else len(stack) -1 print(result)깨달은 점처음에 문제가 제대로 이해가지 않았는데 맨처음 테스트케이스 수를 입력한후n,m 에 총 문서개수와 궁금한 문서의 인덱스이고그다음줄에 중요도이다.예를 들면4 21 2 3 4일때 총 4개의 문서 중 2번째 문서가 몇번째로 인쇄되는지를 출력해야한다.중요도는 1234로 2번째문서는 2번째로 인쇄된다. 코드 설명 while ..

문제솔루션import sysfrom collections import dequeinput = sys.stdin.readlineN = int(input())queue=deque()for _ in range(N): cmd =input().split() if cmd[0]=="push": queue.append(cmd[1]) elif cmd[0] == "pop": if len(queue)==0: print(-1) else: print(queue[0]) queue.popleft() elif cmd[0]=="size": print(len(queue)) elif cmd[0]=="em..

문제솔루션n = int(input())for num in range(0,n+1): li = list(map(int,str(num))) num_sum = num + sum(li) if num_sum == n: print(num) break if num == n: print(0)깨달은 점이것도 부르트포스 문제라고한다.처음엔 수학적으로 접근했는데 시간초과가 떴다. li = list(map(int,str(num)))입력받은 숫자의 각 자릿수를 정수로 변환하여 리스트로 만든 것이다.이 문제에서는 이 부분이 가장 중요하다고 본다. num_sum = num + sum(li)리스트로 만든것을 이용해 sum으로 자릿수의 합을 계산했다. 또한..

문제솔루션a, b, c, d, e, f = map(int,input().split())for x in range(-999,1000): for y in range(-999,1000): if (a*x + b*y == c) and (d*x + e*y == f): print(x,y) break깨달은점수학 공식을 이용해서 풀어야하나 했지만부르트포스 알고리즘 문제였다. -> 전체를 돌면서 알맞은 값을 찾으면 됐다. 수학적 풀이 방법은a,b,c,d,e,f = map(int, input().split())x = (e*c)-(b*f)) // ((a*e)-(d*b)y = (a*f)-(d*c)) // ((a*e)-(d*b)print(x, y)시간이 더 단축되긴 한다...

문제솔루션S = input()li=[]for i in range(len(S)): li.append(S[i:])li.sort()for i in li: print(i)깨달은 점파이썬에 있는 함수를 이용해서 금방 풀었다. li.append(S[i:])s[0:] 0번째부터 끝까지s[1:] 1번째부터 끝까지•••을 이용해 풀면 쉽다.

문제솔루션n, m = map(int,input().split())s=set()cnt=0for _ in range(n): s.add(input())for _ in range(m): word = input() if word in s: cnt +=1print(cnt)깨달은점n, m = map(int,input().split())s=[]cnt=0for _ in range(n): s.append(input())for _ in range(m): word = input() if word in s: cnt +=1print(cnt)처음에 리스트로 했는데 시간이 너무 오래 걸려서세트로 바꾸어 제출했다.import sysinput = sys.stdin.readline..