일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- frontend
- 메모리 포랜식
- 행정지역 DB
- react
- restapi
- JSTL
- PyAmdecoder
- DBMS
- mysql
- 동읍면 DB
- EER
- webhacking 처음
- 3단계 지역 DB
- jsp
- 인턴 후기
- 소프트웨어 개발보안 경진대회
- 인턴 지원
- SessionAttribute
- 네이버 인턴
- reversing.kr
- Forensic 절차
- riceteacatpanda
- Database
- spring
- Django
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- 정보보호병 후기
- Layered Architecture
- 소개딩
- 방명록 만들기
- Today
- Total
목록전체 글 (246)
웹찢남

itertools의 permutations만 안다면 쉽게 풀 수 있는 문제다. (permutations는 a = [1,2,3] pe= permutations(a,2) 이면 pe는 [(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)] 이다 (순열)) # https://www.acmicpc.net/problem/15649 from itertools import permutations A, B = map(int, input().split()) numlist = [tmp for tmp in range(1, A+1)] permute = permutations(numlist, B) for perm in list(permute): for per in perm: print(per, end=' ') pri..

골드 5문제지만 최근 풀었던 것 중 가장 시간이 오래걸렸다.. 히든 케이스를 찾느라 오래걸리기도 했고 itertools의 combinations를 몰라 더럽게 코딩을 할까 고민을 하며 찾아보다 combinations를 찾아 시간이 더 오래걸렸다. 이번 문제는 우선 문자열을 list로 변환하고 괄호의 짝을 찾아 표시를 했다. 예를 들어 [(,1,+,(,2,+,1,),)] 이라하면[1,0,0,2,0,0,0,2,1] 이런식으로 먼저 짝을 찾은 후 각각의 짝을 인덱스로 묶었다. 위를 예로 들어 [(0,8),(3,7)] 이런식으로 그 후 해당 리스트를 combinations를 사용해 모든 경우를 찾았다. 나는 괄호를 지우는 case를 찾아 [[(0,8)],[(3,7)],[(0,8),(3,7)]] 이렇게 나온다. ..

이번 문제는 접두어를 체크하는 문제로 파이썬 문자열의 특성과 sort의 특성만 잘 이해하고 있다면 어렵지 않은 문제다. 파이썬에서 [123, 12000, 123000]을 sort하면 크기 순서대로 같은 값이 나오지만 ['123', '12000', '123000']을 sort하면 ['12000', '123', '123000'] 이렇게 맨 앞의 문자열을 기준으로 정렬한다. 이 특성을 살리면 배열의 앞과 뒤만 잘 확인하면 접두어를 체크할 수 있다, from sys import stdin input = stdin.readline N = int(input()) for _ in range(N): answerflag = True M = int(input()) nlist = [] for j in range(M): nl..

조건이 조금 복잡한 문제다. 이 문제는 꽤 input의 양이 크고 문자열을 계속 뒤집는 문제라 시간 복잡도에 유의해야 한다. 'R'이 들어왔을때 문자열을 계속 뒤집어야 하지만 실제로 뒤집는 것이 아니라 Flag를 하나 만들어 'D'가 들어왔을 떄 문자열이 기존과 달리 뒤집혀 있나 체크를 하면 된다. import json answer=[] N = int(input()) for i in range(N): rd=input() count=int(input()) arr=input() arr=json.loads(arr) rcount=0 errflag=0 for j in rd: if j =='R': rcount+=1 else: try: if rcount % 2 == 1: del(arr[-1]) else: del(ar..

정삼각형의 변의 길이인 k는 1,1,1,2,2,3,4,5,7,9,~이다. 피보나치 수열의 느낌으로 5번째 index인 3을 보면 2번째 + 3번째 index인 1+2라는 것을 알 수 있다. 결국 i번째 index의 value는 i-2번째+i-3번째의 value이므로 아래와 같이 코드를 구현했다. N = int(input()) inp=[] for _ in range(N): inp.append(int(input())) dp=[1,1,1,2,2,3,4,5,7] for i in range(9,101): dp.append(dp[i-3]+dp[i-2]) for j in inp: print(dp[j-1])

이 문제는 먼저 규칙을 파악해야 한다. N=2 일 때 00 11 ~ 01 12 02 13 03 14 04 ~ ~ 19 09 SUM: 10+9+8+7 ~ +1 = 55 N=3 일 때 000 111 001 112 002 113 003 114 004 115 005 116 ~ ~ 099 199 SUM: 55+45+36+28+21+15+10+6+3+1 = 220 맨 앞자리에 들어올 수 있는 숫자는 0부터 9까지 총 10개이다. 맨 앞자리에 들어오는 수를 기준으로 가질 수 있는 숫자의 갯수를 배열로 표현하면 N=2일때 [10,9,8,~,1]이다. 여기서 규칙을 볼 수 있는데 N=3의 0번째 index는 55로 N-1인 N=2의 SUM과 동일하다. N=3의 1번째 index는 45로 N=2의 SUM 빼기 N=2의 0..