코테준비

알고리즘/백준

2231번 분해합

1) 사이트 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 2) 문제 브루트 포스 문제 입니다. 1부터 입력받은 N까지 전수조사하며 최소의 생성자를 찾아내면 됩니다. 216에 경우에도 216부터 1까지 거꾸로 전수조사를 하면 답은 생성자 207이 도출됩니다. ( 207+2+7 = 216) 하지만 이 문제는 최소의 생성자를 찾는 것이므로 1~216까지 전수조사를 해야합니다. ( 198+1+9+8 = 216) 3) 파이썬 코드 result=0 flag=0 number=int(inpu..

알고리즘/백준

3053번 택시 기하학

1) 사이트 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net 2) 문제 문제는 간단합니다. 원의 반지름을 입력받으면, 유클리드 기하학에서의 원의 넓이와 택시 기하학에서의 원의 넓이를 구해주시면 됩니다. 유클리드 기하학 같은 경우는 저희가 초등학교때부터 고등학교때까지 계속 배워왔던 공식들이 모두 유클리드 기하학이라고 보시면 됩니다. 즉 원의 넓이는 pi * r ^2 이 되는 것이죠. 그렇다면 택시 기하학은 무엇일까요? 제가 여러 방면에서 검색해봤는데, 정확하게 뭔지 모르겠어서 유클리드 기하학에서의 원과 택시 기하학에서의 원을 자세히 ..

알고리즘/백준

3009번 네 번째 점

1) 사이트 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 2) 문제 세 지점의 (x좌표, y좌표)가 주어졌을 때 직사각형을 만들기 위한 나머지 x좌표, y좌표를 출력하면 되는 문제입니다. 사실 평행사변형의 상황도 직사각형으로 들어가나 고민했지만, 다행히도 고려해주지 않아도 된다는 것을 알고 코드를 짰습니다. 실제로 그림을 그려보시면, 한 가지 규칙을 찾아내실 수 있는데요. (5, 5) (5, 7) (7, 5) 이 세 점에서 직사각형을 만들 수 있는 점은 (7, 7) 입니다. 여기서 알 수 있는 점은 x에서 5가 2번 7이 2번 y에서 5가 2번 7이 2번 나온다는 규칙이죠. 아래 예제도..

알고리즘/백준

1085번 직사각형에서 탈출

1) 사이트 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net 2) 문제 저는 이 문제를 보고 최단 거리를 구하는 문제인 줄 알았지만, 어느 방면에서든 가장 가까운 거리의 직사각형의 경계선에만 닿으면 되는 문제였습니다. 그래서 제가 고려한 거리로는 출발지점(x, y)에서 1)왼쪽 2)오른쪽 3)위쪽 4)아래쪽이었습니다. 대각선은 삼각비 1:1:루트2 생각하니 대각선으로 가는 길이 더 멀다고 판단되어 위처럼 4가지로만 따져보게 되었습니다. 3) 파이썬 코드 ver1 - 복잡한 코드 x,y,w,h=ma..

알고리즘/백준

4948번 베르트랑 공준

1) 사이트 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 2) 문제 간단히 예로 들어 설명하자면 2를 입력받으면, 2~2*2 안의 소수가 몇 개 존재하는지 찾으라는 문제입니다. 문제 푸는데 계속 가 걸려서 정답 코드 찾아가며 이해하고 결과보는데 3시간 걸렸던 문제입니다 ㅠㅠ 시간초과의 문제는 한 번에 너무 많은 것을 하는 나의 코드 탓이었는데요... 저는 하나의 숫자를 입력받을 때마다 그 숫자마다 소수인지 판별하고, 결과값에 하나 추가하는 식으로 짰었습니다. 하지만 이번 문제는 범위가 1~123,4..

알고리즘/백준

1929번 소수 구하기

1) 사이트 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 2) 문제 이번 문제 2581번 소수 문제를 풀었던 사람이라면, '아 뭐야 개 쉽다'하고 코드 변형해서 내면 라는 문구를 보실 수 있습니다. 2581번 소수 1) 사이트 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출 tksgk2598.tistory.com 저도 그랬거든요... 그래서 네이버 검색 창에 를 치니 다양하게 코드를 짤 ..

알고리즘/백준

11653번 소인수분해

1) 사이트 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 2) 문제 말그대로 소인수분해 과정을 보여주면 되는 문제 입니다. 예제보니까 한 번에 이해 완료! 그동안 풀었던 1978번 소수찾기 문제와 2581번 소수 문제에서 활용했던 지식들을 총 동원해서 풀면 될 것 같습니다. 3) 파이썬 코드 nanum=2 #number을 nanum으로 나눌 것임 2~number-1까지 number=int(input()) number_copy=number while(number!=1): #소수가 들어온 경우는 nanum이 number-1이 될 때까지 돌려서 나누어 떨어지는 것이 없으면 걍 출력한다. # number-1이 될 때까지 나눠지지 않으..

알고리즘/백준

2869번 달팽이는 올라가고 싶다

1) 사이트 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 2) 문제 정답 비율이 30퍼로 안되는 수준이라 지레 겁을 먹었던 문제이다. 심지어 시간도 0.15초 안에 답을 도출해야 하기 때문에 반복문은 쓰지 않고 오로지 수식을 생각하기 시작했다. 문제는 대략 이러하다. 만약 2 1 5라고 입력을 받는다면, 낮에 2만큼 올라가고, 밤에 1만큼 떨어지면서 최종 크기가 5인 나무에 도달하는 데 며칠이 걸리는지 알려주면 된다. 여기서 주의해야 할 것은 입력의 범위에 나무의 크기와 올라가는 정도가 같을 수도 있기 때문에 1이라는 답이 나올 수도 있다는 것이다. *중요점!* ..

SHIN SANHA
'코테준비' 태그의 글 목록