문제 요약 직사각형의 네 번째 점의 좌표값을 구하는 것. 간단히 필자의 개발새발 그림 실력으로 나타내 보았다. 처음에는 예제 입력 1만 보고 max값만 구하겠거니 해서 코드를 그냥 제출해버렸다. 당연히 틀렸다. 예제 입력 2를 보면 아래와 같이 주어지는데 30 20 10 10 10 20 네 번째 점의 좌표값을 구해보면 (30, 10) 이 나와야 되는데 max값인 (30, 20)이 나온다 ㅋㅋ.... 그러면 표에서 왼쪽은 x값들, 오른쪽은 y값들이라고 생각했을 때 list의 원소 값이 하나인 것만 체크해서 돌려주면 된다고 생각했다. 입력은 총 3번 이루어지기 때문에 for문의 range(3)으로 설정해두고 x값들을 담을 list인 x_list, y값들을 담을 list인 y_list를 만들어준다. x, y값..
java로 풀었다면 아마도 이중 for문을 이용해서 2차원 배열을 선언하고 값을 넣어 max값을 구했을 것이다. 하지만 python을 배우다가 1행이 list로 되어있다면? 반복문을 한 번만 돌리면 1행 즉, list에 9개의 값이 들어가게 되는 것이다. 이 코드를 보면 value = [] for i in range(1): value = list(map(int, input().split())) print(value) 아래의 코드를 보게 되면 입력값을 받게 된다. 한 행의 리스트가 들어올 때 그 중에서 가장 큰 값이 max_n으로 들어가게 되고 두 번째 행의 코드로 대체가 된다. 결과를 보면 알 수 있다. max_n = 0 value = [] for i in range(9): value = list(map..
간단하게 표로 설명하겠다. (공책에 끄적였으나 보기가 매우 불편합니다.) 오각형의 단계와 점의 개수로 표에 값을 넣어봤다. 단계 1 2 3 4 5 점의 개수 5 5+7 5+7+10 5+7+10+13 5+7+10+13+16 표에서 보면 어떠한 규칙이 있다. 기존에 점의 개수를 두고 추가적으로 더해지는데 1단계 5, 2단계 7 3단계부터는 10 4단계 13 5단계 16 3단계부터는 등차수열 즉, 3씩 증가한다. 등차수열을 생각하고 코드를 짜면 된다. import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(Syste..
문제 요약 답을 틀리다가 답이 맞으면 처음 문제는 1점으로 계산 연속으로 문제를 맞히게 되면 두 번째 문제는 2점, 세 번째 문제는 3점으로 계산 예제 입력이 아래와 같이 들어왔을 때 10 1 1 1 1 1 1 1 1 1 1 첫번째 문제부터 마지막 문제(10번)까지 다 맞았기 때문에 점수는 아래와 같이 된다. 1 2 3 4 5 6 7 8 9 10 맞은 문제를 누적시켜서 더하게 되면 총점은 55점이 되는 것이다. 이해가 안 된다면 추가적으로 예제를 더 보여주겠다. 10 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 2 3 4 0 0 총점 = (1+1+2+3+4) = 11 이 출력으로 나오게 된다. 이제 감이 잡혔으면 코드를 보자. 문제의 개수 N을 입력받고 N개의 문제의 채점 결과를 나타내는 0, ..
문제 요약 자연수 N과 K가 주어졌을 때, N의 약수 중 K번째로 작은 수 출력 N의 약수의 개수가 K보다 적어서 K번째 약수가 없을 경우 0 출력 예제 입/출력 1을 보자. 6과 3이 주어졌다면 6의 약수는 1, 2, 3, 6이다. 3번째로 작은 수는 3이 출력된다. 예제 입/출력 2를 보자. 25와 4가 주어졌는데 25의 약수는 1, 5, 25이다. 4번째로 작은 수가 없으므로 0이 출력된다. 예제 입/출력 3을 보자. 2735와 1이 주어졌는데 2735의 약수는 1, 5, 547, 2735이다. 1번째로 작은 수는 1이 출력된다. 문제 풀이 일단 자연수 N을 입력받아서 배열을 N만큼 선언 및 초기화한다. 배열 arr에 N을 i(1~N)까지 나눠서 나머지가 0이면 i값을 넣어준다. (N=6일 때) a..
문제를 요약하자면... 바퀴의 지름과 회전수로 이동거리를 구할 수 있고, 바퀴가 회전하는 동안 걸린 시간과 이동거리를 이용하여 평균 속도를 구할 수 있다. 다른 문제들과 다르게 쓰일 단위들이 많아서 힌트에 '이렇게 쓰면 된다'는 느낌으로 써주었다. 나 같은 경우 힌트를 안 보고 'miles to inch'를 검색하여 찾았지만 ㅋㅋㅋ 예제 입/출력을 보다가 힌트가 있는 것을 보게 되어 참조했다. 코딩을 하기 전에 어떻게 풀지 공책에 끄적여 보았다. 지름(diameter) : d, 회전수(cycle) : c, 걸린 시간(second) : s 이동거리 : distance, 평균 속도 : mph 이동거리 같은 경우 입력에서는 inch로 입력 받는데 출력에서 miles로 출력해야 되기 때문에 inch를 5280으..
내 입장에서 별 찍기가 가장 어려운 것 같다... (멍충해서 그런가 ㅋㅋ 아니면 1학년 때 C언어 과목에서 고놈의 별 찍기를 트라우마가 생길 정도로 찍었던 기억 때문일지도... 과제로 내주시는 교수님... 하지만 printf("")로 찍었던 나... ㅎㅎㅎ) 문제 출력에서 보면 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 라고 했으니 입력이 N=3이 들어왔을 때 출력이 총 5줄에 걸쳐 찍히기 때문에 기준을 N으로 잡아서 풀면 되겠다는 생각이 들었다. for(int i=0; i
간단하게 요약하자면 Equilateral : 세 변의 길이가 모두 같은 경우 Isosceles : 두 변의 길이만 같은 경우 Scalene : 세 변의 길이가 모두 다른 경우 Invalid : 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우(가장 긴 변 >= 나머지 두변의 합) 입력이 0 0 0이 들어가지 않는 이상 계속 돌게 만들어야된다. 가장 긴 변 같은 경우 세 변을 입력받고 가장 큰 값을 긴 변으로 생각하여 변수(max)를 만들어주면 되고 나머지는 비교 연사자를 쓰면 풀 수 있는 문제이다. 여담) 처음에 쓴 코드다. (당연히 틀렸다..) if (arr[0] == arr[1] && arr[1] == arr[2]) System.out.println("Equilateral"); else i..
문제를 설명하기 앞서 이 아래의 문제와 같은 문제이다. 예제 입력과 출력은 같다. [java] 백준 10870번 피보나치 수 5 문제를 요약하자면 0번째 0, 1번째 1, 2번째부터는 0번째 값과 첫 번째 값의 합이라는 것이다. F(2) = F(0) + F(1) -> 즉, F(n) = F(n-2) + F(n-1) 이 문제는 간단하게 재귀를 쓰면 된다. import java.util.Scann.. begin-dev-awos.tistory.com 이 문제와 위의 문제의 차이점은 n의 범위다. 10870번 문제에서 n은 20이었고, 이번 2747번 문제에서는 n은 45이다. 또한 티어의 차이도 있는데 약간 애매하다... 10870 티어가 좀 더 높은데 난 뒤바꼈다고 생각한다. 10870문제에서 쓰던 소스를 복..
문제 내용을 요약하자면 대회의 9문제의 배점이 100점, 100점, 200점, 200점, 300점, 300점, 400점, 400점, 500점 이라고 한다. 그리고 받은 점수의 합계가 100점 이상이라면 커피를 받을 수 있다. 근데 점수를 조작하는 사람들이 있는데 문제의 배점을 초과하여 점수를 받는다면 hacker로 간주 출력에서 커피 추첨 대상자가 아니라면 none을 출력하고, 해커라면 hacker를 출력한다. 그 외의 경우에는 draw를 출력한다. 라고 되어있으니 그에 맞게 if문으로 조건 걸어주면 쉽게 풀 수 있다. 9문제의 배점을 배열로 만들어 점수를 입력받을 때 문제의 배점을 입력받은 점수가 초과하게 되면 hacker, 100점 미만이면 none, 그 외라면 draw 로 처리해주면 된다. impo..