[백준 1929.java] 소수구하기 - 에라토스테네스의 체
·
백준 baekjoon
https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 소수구하기는 **에라토스테네스의 체** 알고리즘을 사용하여 구한다. 에라토스테네스의 체는 전에 공부한적 있지만 좀 까먹어서 다시 공부한다. 참고링크 https://forward-movement.tistory.com/98 에라토스테네스의 체 에라토스테네스의 체는 소수(Prime Number) 를 찾는 방법이다. 대량의 소수들을 구해야할 때 아주 유용한 알고리즘으로 O(N^1/2)의 시간복잡도를 갖는다. [ 원리 ] 소수란 약수가 ..
[백준 2108] 통계학 / 최빈값 구하기
·
백준 baekjoon
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 정답코드 import sys N =int(input()) stack=[] for i in range(N): stack.append(int(sys.stdin.readline())) stack.sort() def rangeto_stack(stack): stack.sort() if len(stack)==1: return print(0) else: r = stack[-1]-stack[0] return print(r) ..
[파이썬-리스트] 사용시 시간초과 방지 방법
·
백준 baekjoon
1. sys.stdin.readline() 로 입력받기 import sys n=int(input()) # testcase for i in range(n): t=int(sys.stdin.readline()) [BOJ 10773] 위에는 사용해서 푼것이다. sys.stdin.readline()유무에 따라 시간 차이가 많이난다. # https://www.acmicpc.net/problem/10773 # 제로 # 알고리즘 : 스택 ''' 1. input k 2. 한줄에 하나씩 2.1 if n==0 : pop() else : queue.append(n) 2.3 print(sum(queue)) ''' import sys K = int(sys.stdin.readline()) stack=[] for i in range..
[백준 11279] 최대힙
·
백준 baekjoon
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net [백준 1927] 최소힙 / Heap https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 tistory.parknayoung.com 앞서 작성한 스토리를 참고하자 기본적으로..
[백준 1927] 최소힙 / Heap
·
백준 baekjoon
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 힙(heap) 이란 ? - 우선 순위 큐를 위하여 만들어진 자료구조이다. - 데이터에서 최댓값과 최솟값을 빠르게 찾기위해 고안된 완전 이진트리 자료구조 삭제되는 요소 스택(Stack) 가장 최근에 들어온 데이터 큐(Queue) 가장 먼저 들어온 데이터 우선순위큐(Priority Queue) 가장 우선순위가 높은 데이터 2. heap을 사용하는 이유? - 최솟값이나 최댓값을..
[백준 2776] 암기왕
·
백준 baekjoon
06-07 알고리즘 분류 자료구조 정렬 이분탐색 해시를 사용한 집합과 맵 풀이 문제를 보고 쉽게 풀이과정을 떠올렸다. 알고리즘 분류를 보면 이렇게 단순한 구현문제는 아닐것같은데 딕셔너리(해시)로 이용해서 풀어야할거 같은 느낌. 첫 시도 list로 풀었다. 내코드 1 ''' try1. 너무 basic -> 시간초과 1) input - testcase 2) n 2-1) note1 = [] 3) m 3-1) note2 = [] 3-2) for note2 돌면서 if~ ''' testcase = int(input()) for _ in range (testcase): n = int(input()) note1 = list(map(int,input().split())) m =int(input()) note2 = li..
[백준 10816] 숫자카드 2
·
백준 baekjoon
06-06 어제에 이어서 딕셔너리 문제를 풀었다. '코테를 잘 푸는 방법' 에 대한 유튜브 영상에서 문제를 보았을 때 10분남짓한 시간동안 수도 코드처럼 정리해보는 것이 중요하다고 본 이후로 주석으로 전반적으로 내가 어떻게 풀것인지 먼저 작성해보고 코드를 짜고 있다. 잘 짜는건 아직 모르겠으나 코드를 짜다가 길을 잃어버리는 경우가 전보다 적어진것 만으로 의미가 있다고 생각한다. ''' counter 함수 이용 1. input n 2. for 문 card list.append 2.1 count(card list) 3. input m 3.1 find = {} //dic 3.2 key가지고 card-list 에서 value값 찾기 ''' 내 코드 from collections import Counter n =..
[백준 9375] 패션왕 신해빈
·
백준 baekjoon
06-05 딕셔너리 - 해시 개념을 공략하겠다. 대강 어떤 개념인지는 알지만 구현하는 법이 아직 익숙하지 않다. 풀이 (a종류 +1) * (b종류 +1) * ... -1 이 식을 알면 쉬운 문제였을것이다. 수학적 사고가 안된다. 외울수도 없고... 코드 n = int(input()) # testcase 입력받기 for _ in range(n): m = int(input()) # 의상의 종류 clothes = {} for _ in range(m): name, category = input().split() if category in clothes: clothes[category] +=1 else: clothes[category] = 1 result = 1 for count in clothes.values(..
[백준 2941] 크로아티아 알파벳
·
백준 baekjoon
https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 05-31 풀이 결국 답지봄. 진짜 코드 20줄 넘어가게 겁나 꼬아서 코드를 짜고 있었다. 내가 짜던 엉망진창 풀이방식이 기억에 너무 남아서 담날 이 문제를 다시 생각해보았을 때 정답 코드가 생각나지 않았다. 문자열을 두개단위로 자르고 croatia 리스트에 있나 확인하고 있으면 cnt+=1 하고.... 무튼.. 코드 (답지) croatia = ['c=', '..
[백준 11656] 접미사 배열
·
백준 baekjoon
06-02 티스토리를 열심히 써야겠다. 부스트캠프 지원서에 티스토리 링크도 첨부하는란이 있었다. 개발자 지원은 노션, 티스토리, 깃허브 내용이 중요하다는 사실을 다시 한번 느낀다. 지원서나, 이력서를 준비할때마다 새로운 것을 알게되고 동기부여가 된다. 풀이 사전순으로 출력 ? -> sort() 예시 코드를 짜보니까 된다. 오호 거의 첨으로 15분? 만에 풀었다. 정답률이 70퍼인거 보니까 이정도 풀었으면 이정도는 해야겠지 라는 생각이 들면서도 나름 뿌듯하다. 이왕 빨리 푼김에 dfs,bfs 복습해야겠다. 코드 s = input() fis = [] tmp =[] for i in s: fis.append(i) for j in range (len(fis)): tmp.append(s[j:]) tmp.sort()..