BackJoon

Python/백준 알고리즘

[백준 알고리즘: python 3] #1008 - A/B

https://www.acmicpc.net/problem/1008 하하.. 요고는 1000번이랑 1001번이랑 거의 똑같으니 코드만 두고 생략하겠습니다! int1, int2 = map(int, input().split()) print(int1 / int2)

Python/백준 알고리즘

[백준 알고리즘: python 3] #1007 - 벡터 매칭

https://www.acmicpc.net/problem/1007 1007번 문제는 벡터와 관련된 문제입니다. N 개의 점(N은 짝수)들이 주어지면, 2개의 점을 각각 연결하여 총 N/2개의 벡터 셋을 만들 때, 그 벡터들의 합의 길이의 최솟값을 구하는 문제입니다. 벡터들의 합의 길이의 최솟값! 이라고 했습니다. 이 때, 벡터의 합이 어떤 성질을 가질까에 대한 생각을 해볼 수 있겠네요. 예를 들어, (x1, y1), (x2, y2), (x3, y3), (x4, y4) 이렇게 네 점이 주어져 있다고 생각해보면, (x1, y1)에서 (x2, y2)를 향하는 벡터 v1, (x3, y3)에서 (x4, y4)를 향하는 벡터 v2 를 생각해볼 수 있습니다. 그리고 각 벡터의 값은 다음과 같이 표현할 수 있습니다. ..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1006 - 습격자 초라기

https://www.acmicpc.net/problem/1006 정말... 알고리즘 초심자들을 모두 돌아가게 한다는 1006번 문제가 맞았군요. 구글링해보고 공부도 해서 풀고... 결국엔 점화식을 제시해 준 한 블로그를 참고해서 풀었습니다. 1006번 문제는 원타곤의 습격자 초라기가 자신의 특수 소대를 원타곤의 구역에 배치할 때, 최소 필요한 소대 수를 계산하는 문제입니다. 처음에는 점화식을 생각도 안한채로, 1. 특수소대가 2곳의 구역을 담당할 수 있을 때, 그 2곳 쌍을 모아서 {구역번호: [함께 담당할 수 있는 구역들]} 의 dict 셋으로 모은 다음, 2. [함께 담당할 수 있는 구역들] 의 길이에 따라 sort시킨 다음에, 3. 길이가 짧은 순서대로(왜냐하면, 길이가 짧을 수록 쌍을 이룰 수 ..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1005 - ACM Craft

https://www.acmicpc.net/problem/1005 읽기 전에! 혹시 시간초과이신가요..? 시간초과로 여러번 실패했던 문제입니다. 첫 제출의 코드 내용은 틀린 내용이 없었는데, 시간초과 때문에 코드도 싹 바꿔보고 했었습니다. 아무리 생각을 해봐도 이렇게 했는데 시간초과인거면 그냥 파이썬으로 못푸는건가...? 라는 이상한 생각도 해봤습니다. 결론만 말씀드리면, 이 문제처럼 input의 양이 많을 경우 input() 대신 sys.stdin.readline()을, print() 대신 sys.stdout.write() 을 대체하여 사용하면 러닝 타임이 매우!! 많이!! 빨라진다고 합니다. 저도 처음 알았는데 기존 python의 input(), print() 함수는 호출이 느리다고 하네요.. 저도 ..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1004 - 어린 왕자

https://www.acmicpc.net/problem/1004 1004번에는 어린 왕자의 여행과 연관하여 문제가 소개되어 있습니다. 어린 왕자가 출발지로부터 도착지까지 행성계 사이를 여행하는데, 제시된 행성계의 경계를 최소 몇번 진입/이탈 할 것인지 구하는 문제입니다. 입력은 어린 왕자의 출발지, 도착지의 좌표와 행성계의 수, 그리고 각 행성계의 중심 좌표와 반지름이 주어집니다. 문제의 그림에서는 총 3번의 진입과 이탈이 발생하게 됩니다. Hint! 문제는, 언제 진입/이탈이 불가피한 지를 파악하는 것입니다. 공책에 아무데나 원을 그리고 출발지와 도착점을 찍어보세요. 그림은 아래 네가지 상황 중 하나일 것입니다. 출발지와 도착지가 모두 원이 포함될 때, 출발지가 원에 포함되고, 도착지는 포함되지 않을..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1003 - 피보나치 함수

https://www.acmicpc.net/problem/1003 1003번 문제에는 피보나치 함수가 소개되어 있고, 문제에 대한 설명을 아래와 같이 해두었습니다. 처음에 드는 생각은, 아 그럼 저 코드를 python으로 똑같이 옮긴 다음에 전역 변수로 count0 와 count1 을 선언한 뒤 함수 내에 n == 0을 잡는 if 문이 실행이 되면 count0에 1을 더하고 n == 1의 경우에는 count1에 1을 더해서 출력하면 되지 않을까? 쉽네! 였습니다. 가령, 다음과 같이 말이죠. count0 = 0 count1 = 0 def fibonacci(n): global count0 global count1 if n == 0: print("0") count0 += 1 return 0 elif n ==..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1002 - 터렛

https://www.acmicpc.net/problem/1002 1002번 터렛문제는 사실 기하학 문제입니다. 뭔가 문제의 내용만 가만히 읽어보면 그런 생각이 팍 들지 않더라고요. 문제를 잘 읽어보면, 터렛에서 근무하는 조규현의 좌표(x1, y1) 백승현(x2, y2)의 좌표가 주어져 있고, 조규현과 r1만큼 떨어진 곳에, 그리고 백승현과 r2 만큼 떨어진 곳에 류재명이 있다고 하는데요, 그렇다면 조규현(x1, y1)으로부터 r1 떨어진 모든 좌표와 백승현(x2, y2)으로부터 r2 떨어진 모든 좌표 중, 두 좌표가 겹치는 곳을 모두 찾으면 될 겁니다. hint! 조금 더 간단히 말하자면, 중심이 (x1, y1)이고 반지름이 r1인 원과 중심이 (x2, y2)이고 반지름이 r2인 원의 교점의 개수를 구..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1000, #1001 - A+B, A-B

https://www.acmicpc.net/problem/1000 https://www.acmicpc.net/problem/1001 어쩌다 보니 벌써 대학원생이 됐네요. 분명 시간이 부족하고 할게 많아야 정상인 것 같은데, 블로그를 쓰고있다니.. 정상인건지 비정상인건지 잘 모르겠습니다 ㅜ.ㅜ 벼르고 벼르던 알고리즘 공부를 어제부터 시작하게 되었습니다. 어디서부터 뭐를 풀어야 하지 하다가 그냥 전체 문제를 들어가서 1000번부터 풀어나가기로 했습니다. 알고리즘 공부도 공부인데, 제가 이걸 어제 시작을 해서 바로 시작하길 잘했다고 생각한 이유는 아마 1000, 1001번을 풀게 된 이후로 인 것 같아요. 그냥 대충 알고 있는대로 하면 되겠거니... 했는데, 위와 같은 입출력 형태를 맞추는데... 안 해도 될..

hellonero
'BackJoon' 태그의 글 목록