
포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 문제를 보자. 7/18 일 풀다가 시간초과를 4번받고 미뤄두었던 문제이다. 금일 외출 전에 생각이 나서 문제를 풀어봤다. 지금은 굉장히 쉽게 풀렸는데, 그 때는 왜 그랬는지 잘 모르겠다. 코드 import sys as s n = int(s.stdin.readline()) log ={} num = 0 for i in range(n): chat = s.stdin.readline().strip() if chat == 'ENTER': log = {} num += len(log) elif chat in log: continue else: log[chat] = chat num+= 1 print(num) 그냥 ENTER 값이 입력될 때 마다,..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 문제를 보자. 시간제한과 메모리 제한 입력값을 보았을 때, 정석적으로 반복문을 사용하여 푸는 문제는 절대로 아닐 것 같다고 생각했다. 솔직히 동적 계획법이 떠올랐지만, 해당 섹터가 아니라 그 풀이에 대해서는 보류했다. 이런 식으로 문제에 접근하는 건 좋지 않다. 근데 동적계획법으로 했어도 풀 수 있을지는 모르겠다. 보통 이런 문제는 패턴이 있더라. 1부터 단순반복하며 패턴을 찾았다. 입력값과 출력값 순서대로 나열해보겠다. ex) 1, 1 1, 1 2, 1 3, 1 4, 2 5, 2 6, 2 7, 2 8, 2 9, 3 10, 3 ... 출력값이 변하게 되는 부분이 1, 4, 9으로 1~의 제곱수마다 1씩 증가하는 것을 알 수 있다...

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 문제를 보자. 문제가 길어 필요한 부분만 가져왔다. 딱히 설명할 부분이 없다. 다만, 입력에는 2가지 경우가 있다. 1. 숫자 2. 문자 필자는, 2개의 해쉬테이블을 만들어 입력값의 형태에 따라 적절한 해쉬테이블에서 값을 조회하게끔 구현했다. 코드 import sys as s n,m = map(int,s.stdin.readline().split()) array, array2={},{} for i in range(1,n+1): name = s.stdin.readline().strip() array[name] = i array2[i] = name for j in range(m): name = s.stdin.readline().stri..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 문제를 보자.시간 초과 2번과, 2번의 오답 후 풀어낼 수 있었다. 코드부터 보자 코드 import sys as s n,m = map(int,s.stdin.readline().split()) array, array2={},[] count = 0 for i in range(n): name = s.stdin.readline().strip() array[name] = 0 for j in range(m): name = s.stdin.readline().strip() if name in array: count += 1 array2.append(name) array2.sort() print(count) for i in array2: prin..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 문제를 보자. 요새 포스팅 빈도가 줄어듦을 확연히 체감한다. 분수 모르고 바쁜 탓이다. 그래도 짬을 내어 하나라도 남겨본다. 코드 import sys as s n = int(s.stdin.readline()) dict={} a = list(map(int,s.stdin.readline().split())) for i in a: if i in dict: dict[i] += 1 else: dict[i] = 1 m = int(s.stdin.readline()) b = list(map(int,s.stdin.readline().split())) for j in b: if j in dict: print(dict[j], end=' ') else..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 문제를 보자.코드부터 보자. 코드 import sys as s array = {} n = int(s.stdin.readline()) for i in range(n): a,b = map(str,s.stdin.readline().split()) if b == 'enter': array[a] = 1 else: del array[a] array = sorted(array, reverse=1) for j in array: print(j) 처음에 import sys as s를 빼고 그냥 입력으로 받았더니 시간초과를 받았다. 추가 후 통과할 수 있었다. 배운 점 1. dict에서는 del dict [a]를 통해 요소를 지울 수 있다.

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 문제를 보자. 이전에 푼 문제에서 코드만 조금 수정하면 풀 수 있는 문제다. 이전 문제인 숫자카드에서는 배열을 사용해서 시간초과를 받았었지만, 이번엔 바로 dict을 만들어 문제를 통과했다. 코드 array = [] array2 = [] sum=0 n, m = map(int,input().split()) for i in range(n): array.append(input()) dict={i:i for i in array} for i in range(m): array2.append(input()) for k in array2 : if k in dict : sum += 1 else: continue print(sum) 다만, 반복문에..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 문제를 보자. 오랜만에 다시 문제를 접하니 처음에 그냥 생각 없이 풀었다. 코드부터 보자. 코드 array = [] array2 = [] n = int(input()) array = list(map(int,input().split())) m= int(input()) array2 = list(map(int,input().split())) for k in array2 : if k in array : print('1',end=' ') else: print('0',end=' ') 시간초과다. 입력값을 보니 500000이 될 수 있다. 위 코드의 경우 최악의 시간이 500000^2만번으로 예상된다. 따라서 해쉬테이블을 만들어 사용했다. 해..
- Total
- Today
- Yesterday
- 프로그래머스
- 코딩테스트
- 김영한 실전 자바 중급
- 백준
- 스프링
- static
- zixem
- extends
- 코딩테스트 준비
- 자바
- Los
- 기술스택
- 상품을 구매한 회원 비율 구하기 파이썬
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 백준 피보나치 수열
- los 15단계
- ys.k
- java
- lord of sql
- 김영한 실전 자바 기본
- 김영한 실전 자바 기초
- 백준 피보나치
- samron3
- 김영한
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- spring
- los 15
- samron
- 상속
- webhacking.kr
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |