분류 전체보기
알고스팟 maxsum 문제 파이썬으로 풀기
문제는 주어진 정수 배열에서 가장 큰 부분합을 구하는 것이다. 문제를 처음 봤을 땐 0보다 작은 수의 위치를 구해 양수 및 0이 있는 배열만을 뽑아 그 중 최대치를 구하면 될 거 같다는 생각이 들었다. 그런데 예를 들어 -1 99 -1 99 이런식으로 배열이 주어졌을 때 최대의 부분합은 99 -1 99를 더한 197이다. 하지만 내가 생각한 것으로 구하면 99가 최대라고 계산하게 된다. 이렇게 음수를 포함하는 것도 가장 큰 부분합을 구하는데 영향을 줄 수 있어서 고민하다가 이 글을 보고 이대로 코드를 짜보기로 했다. 출력도 잘 이루어진다. 제출해보니 시간이 엄청 걸리긴 했지만 정답이 떳다. 느낀점: 1. 양수만 합하는 변수와 다 합하는 변수를 같이 이용해 거기서 최댓값을 구한 것처럼 문제를 구할 때 하나..
백준 1009번 문제 분산처리 c#으로 풀기
컴퓨터가 데이터를 처리하는데, 가장 마지막 데이터를 처리하는 컴퓨터를 찾는 문제다. 보자마자 드는 생각은 1의 자리수를 출력하면 될거같다 라는 생각이었다. 이 표처럼, 수를 거듭제곱 하면 1의 자리수가 순환한다.(2는 2-4-8-6, 3은 3-9-7-1로 순환) 이것을 이용하는 것이다. 그런데 문제를 자세히 보다보니 한가지 놓친점을 발견했다. 곱해지는 수인 a의 범위가 1부터 100까지였던 것이다. 그래서 내 처음 생각이 틀리지 않을까 했는데, 그냥 생각대로 해도 될거같다. 이유는 어차피 원하는것은 1의 자리수이기 때문에, 수가 얼마나 크던 그 수의 1의 자리수를 제곱해나가는 것이라 1의 자리수는 순환할 거라고 생각했기 때문이다. 코드가 긴건 함수때문이다. 설명을 하자면, a가 1자리수~10까지일때, 두..
백준 1004번 문제 어린 왕자 c#으로 풀기
지도, 출발점, 도착점이 주어질 때 최대한 행성계를 덜 지나게 가는 경로의 행성계 진입/이탈 횟수를 출력하는 문제다. 일단 지금 드는 생각은 경로는 곡선이기 때문에, 출발점과 도착점을 안에 두는 행성계의 갯수를 출력하면 될꺼같다. (포함하는 행성계는 피하지 못하고 출입할 수 밖에 없기 때문) 또한, 행성계끼리 닿거나, 교차하지도 않고, 점이 경계에 걸쳐지지도 않았기에 일단은 이 생각대로 하면 될 거 같다. 구체적으로 하자면, 지나가야만 하는 행성계의 조건은 a를 출발점, b를 도착점이라 하고 행성중심을 c, 반지름을 r이라 할 때 1. a와 c사이의 거리 r > c와 b와의 거리 (출발점은 행성..
백준 1003번 문제 피보나치 함수 c#으로 풀기
c#으로 피보나치를 풀어보겠다. 위와같은 피보나치 함수에서 0과 1이 출력되는 횟수를 계산해 출력하면 된다. 처음 생각엔 0과 1을 세는 전역변수를 선언하고, 문제에 나온 피보나치 함수를 실행해 n이 0이나 1이 될 때마다 변수를 증가시키고 그것을 출력하면 될 거 같다는 생각을 하였다. 저 함수를 실행하면 피보나치 수도 구해지지만 그건 문제에서 요구하는 거랑은 아무 상관없으니 그냥 변수 하나 생성해 그걸로 입력받도록 하면 될거같다. 그런데 뭔가 잘 안됬다. 내가 c#에 대한 개념이 부족해서 그런거 같다. 클래스를 하나 만들고, 객체를 만들어서 출력을 하게 해봤다. ?? 문제가 제공해주는 예시를 넣어봤는데 맞지 않게 나왔다. 즉 이건 내 코드가 문제가 있다는 뜻. 그 이후로 이것저것 생각해봤지만 떠오르는게..
백준 1002번 문제 터렛 c#으로 풀기
c#으로 터렛을 풀어보겠다. 두 터렛의 좌표와 각각의 터렛에서 마린의 위치까지의 거리를 받고, 마린이 존재할 수 있는 좌표의 수를 출력하면 된다. 맨 처음에 본 순간, 마린이 존재할 수 있는 위치를 구해야 하나하는 생각이 들었지만, 바로 그럴 필요가 없다고 생각했다. 그 이유는 이 문제는 결국 위치의 수를 구하면 되지, 위치 자체를 구해서 그 수를 세는 문제가 아니기 때문이다. 터렛 1과 터렛 2의 마린까지의 거리를 위 그림에서의 r, r'로 하면, r과 r', 터렛끼리의 거리 d의 관계를 보면 경우의 수를 구할 수 있다. 이를 코드로 나타내면 이렇게 된다. 제출을 해봤더니... 틀렸다. 다시 문제를 읽어보니... 무한대일 경우에는 -1을 출력한다를 고려하지 않아 틀린거 같다. 조금 고쳤다. 터렛간 거리..