일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- convention
- 소수
- lower_case_table_names
- 리스트 컴프리헨션
- 자료구조
- enumerate
- datetime
- floor
- 에라토스테네스의 체
- Dictionary
- flask
- list comprehension
- 세그먼트 트리
- 큰 수 나누기
- itertools
- SUM
- SUM()
- 2557
- BOJ
- mysql
- FOREIGN KEY
- ceil
- project euler
- python
- Codeforces
- 딕셔너리
- 외래키
- 파이썬
- timestamp
- 네이밍
- Today
- Total
목록알골 공부 기록 (51)
늒네 기록
17204번: 죽음의 게임 (acmicpc.net) 이 문제와 아이디어가 정확히 같은 문제다.[a,...b]=(0+require('fs').readFileSync(0)).split``;[n,m]=a.split` `i=0k=b[0]while(++i
15886번: 내 선물을 받아줘 2 (acmicpc.net)아이디어는 간단하다. 주어진 지도를 벗어나지 않으므로 문자열은 무조건 E로 시작하고 W로 끝나는 것이 보장되어 있고, E, W를 다음과 같이 화살표로 표시하면 같은 색으로 묶이는 곳의 방향 변경 지점 둘 중 한 곳 아무데나 선물을 놓을 경우 하나의 색을 커버 가능(그 색의 어디서 시작하든 선물을 가져갈 수 있음)하다는 것을 알 수 있다. EEEEEWWWEEEWEEEWWWW →→→→→←←←→→→←→→→←←←← 그리고 앞서 말한 방향 변경 지점은 'EW'로 찾을 수 있다. 즉, 문자열 전체 중 EW가 몇 번 나타나는지 세는 것으로 답을 찾을 수 있다.console.log((2+require('fs').readFileSync(0)).match(/EW/..
11558번: The Game of Death (acmicpc.net) 배열의 첫 번째 요소부터 시작해서, 해당 요소가 가리키고 있는 배열의 요소를 다시 얻어내고, ... 이걸 여러 번 반복해서 배열의 마지막 아이템에 도달할 수 있는지, 있다면 몇 번의 시행만에 도달할 수 있는지 출력하는 문제. 주요한 아이디어는 다음과 같다.- 첫 아이템부터 시작해서 시뮬레이션으로 풀면 된다. 다만 무한히 시행해도 마지막 아이템에 도달하지 못하는 경우가 있을 수 있다.- n개의 노드로 이루어진 그래프에서는 사이클의 크기가 이무리 커도 n을 넘지 못한다. 그렇기 때문에 시행을 n번 반복했음에도 불구하고 마지막 아이템에 도달하지 못했다면 영영 도달할 수 없다는 말이 된다. a=(0+require('fs').readFileS..
13450번: László Babai (acmicpc.net)문제 지문만 보면 길이도 길고 중간에 집합 관련 설명도 있어서 겁 먹기 딱 좋게 생겼지만, 사실은 매우 단순한 문제다.노드가 셋 있다. 각각 1, 2, 3 번호가 붙어있다.엣지는 0개 이상, 3개 이하 있다.첫 줄에는 테스트 케이스 개수가 주어져 있다.각 테스트 케이스는 두 개의 그래프 정보로 이루어져 있다.각 그래프 정보의 첫 줄에는 엣지 개수 m이 주어져 있고, 이후 m개의 줄에 각 엣지가 어떤 점으로 이루어져 있는지 정보가 주어져있다.두 그래프의 형태가 같으면 yes, 다르면 no 출력.아이디어도 매우 간단한데, 노드가 3개이므로 엣지 개수가 같으면 무조건 동형 그래프일 수밖에 없다. 이건 엣지 개수마다 케이스 나눠서 증명하면 매우 간단...
1894번: 4번째 점 (acmicpc.net) 평행사변형에는 대각선이 두개 있는데, 각각 선분AC와 선분BD라고 하자.이때 두 선분의 중점이 일치하는데, 그 말은 원점 O가 있을때 (벡터OA+벡터OC)/2 = (벡터OB+벡터OD)/2라는 뜻이므로, 우리가 세 점 A, B, C를 알고 있을때 D의 좌표를 구하고 싶다면 A + C - B = D를 활용하면 된다는 말이기도 하다.그런데 우리에게는 이웃한 두 변이 주어지는데, 이때 두 변에 동시에 존재하는 점이 B가 되므로, 주어진 변의 정보를 잘 보고 A, B, C를 구해서 D의 위치를 계산하면 된다.a=(require('fs').readFileSync(0)+0).split``a.map(i=>{ [a,b,c,d,e,f,g,h]=i.split` `.map..
16485번: 작도하자! - ② (acmicpc.net) 각 이등분 하고 나서 나온 도형의 성질을 예전에 배웠던 기억이 있어서 그대로 썼는데 언제 배웠는지는 잘 기억이 나지 않는다. [a,b]=(0+require('fs').readFileSync(0)).split` `console.log(a/b)
20365번: 블로그2 (acmicpc.net) 아이디어는 아래의 문제와 동일하다.[BOJ-JS] 1439번 - 뒤집기 (tistory.com) [BOJ-JS] 1439번 - 뒤집기1439번: 뒤집기 (acmicpc.net) 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 Sjaehaaheaj.tistory.com x='';r=1;(2+require('fs').readFileSync(0)).split``[1].split``.map(i=>{if(i!=x){x=i;r+=.5}})console.log(~~r)
27961번: 고양이는 많을수록 좋다 (acmicpc.net) 이진수 기준으로, 각 시행은 1을 더하거나 끝에 0을 붙이는 것이므로 숫자를 이진수로 바꿔서 길이를 알아내는 것이 핵심 아이디어다. 물론 n이 0, 1일때는 예외처리를 잘 해주어야 한다.a=require('fs').readFileSync(0)-1console.log(a>0?a.toString(2).length+1:a+1)
18044번: Polygon (acmicpc.net) 18044번: PolygonYou are given n segments of lengths ℓ1, ℓ2, . . . , ℓn, respectively. Determine the largest possible circumference of a convex polygon that can be constructed using these segments (in any order, and not neccessarily all of them). The polygon must bewww.acmicpc.net각 테스트 케이스마다 n개의 변 길이가 주어지고, 이 변들을 사용해서 만들 수 있는 최대 둘레길이의 다각형의 둘레를 출력하는 문제. 아이디어는 다음과 같다.- ..
30076번: Kalėdų senelis (acmicpc.net) 30076번: Kalėdų senelisIšveskite $M + 1$ skaičių skirtingose eilutėse. Pirmojoje eilutėje nurodykite, kiek dovanų reikia įsidėti prieš pradedant kelionę. Kitose $M$ eilučių išveskite, kiek dovanų reikia pasikrauti kiekvienoje slėptuvėje (rezultatai pateikiami tawww.acmicpc.net문제를 번역하자면,- 산타가 아이들에게 선물을 나눠주려고 하고 있다! 아이는 총 N명.- 그리고 은신처가 있다! 총 M개.- 그렇다면 산타가 선물을 가지..