일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 큰 수 나누기
- ceil
- datetime
- SUM()
- itertools
- mysql
- SUM
- enumerate
- 2557
- 외래키
- 소수
- timestamp
- BOJ
- Dictionary
- 딕셔너리
- project euler
- floor
- Codeforces
- 네이밍
- flask
- list comprehension
- 세그먼트 트리
- 에라토스테네스의 체
- FOREIGN KEY
- 자료구조
- convention
- python
- 리스트 컴프리헨션
- 파이썬
- lower_case_table_names
Archives
- Today
- Total
늒네 기록
[BOJ-JS] 4363번 - Snow Clearing 본문
4363번: Snow Clearing (acmicpc.net)
문제를 요약하자면 다음과 같다.
- 도로망 주어짐. 첫 줄에 시작하는 위치, 그 다음줄부터 도로의 한쪽 끝부터 다른쪽 끝 위치, 즉, 엣지.
- 도로망은 연결되어 있는 것이 보장된다.
- 제설차로 이동하면서 모든 도로의 눈을 밀 것이다. 이때, 도로는 양방향으로 나있고(두 lane으로 이루어짐), 한 번 밀때 당연히 한 쪽만 밀린다.
- 도로 위치의 단위는 미터다. 제설차는 처음 도로를 밀고 갈때 20km/h, 이미 밀고 지나간 도로는 50km/h로 움직인다.
- 총 걸리는 시간을 출력하시오. 조건에는 나와있지 않지만, h:mm, 혹은 hh:mm 같은 포맷이 되어야 하는 것으로 보인다.
아이디어는 다음과 같다.
- DFS를 한다고 생각하면 모든 lane을 한 번씩 돌면 된다.
r=0;
(0+require('fs').readFileSync(0)).split`
`.map(i=>{
[a,b,c,d]=i.split` `
if(c){
c-=a;d-=b;
r+=(c*c+d*d)**.5*6/1e3
}
})
r=Math.round(r)
console.log(~~(r/60)+':'+((v=r%60)<10?0:'')+v)
반응형
'알골 공부 기록 > BOJ' 카테고리의 다른 글
[BOJ-JS] 9849번 - Rect (0) | 2024.05.17 |
---|---|
[BOJ-JS] 10451번 - 순열 사이클 (0) | 2024.05.17 |
[BOJ-JS] 5991번 - Papaya Jungle (0) | 2024.05.08 |
[BOJ-JS] 17848번 - Flight Turbulence (0) | 2024.05.08 |
[BOJ-JS] 12852번 - 1로 만들기 2 (0) | 2024.05.05 |
Comments