https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 해설 반복문을 학습하면 가장 먼저 접하는 1부터 n까지의 합을 구하는 알고리즘입니다. n이 주어지면 1부터 n까지 계산을 해주는 가장 간단한 접근이 반복문이고 (1부터 n까지 코드를 반복하기 때문입니다.) 반복문에 사용하는 반복변수를 계산에 직접 사용할 수 있다는 점을 착안해 sum = sum + i; 코드를 반복시킬 수 있습니다. 풀이 해설의 알고리즘을 그대로 코딩하면 다음과 같습니다. sum을 간단히 a변수로 사용했습니다. n = int(input()) a=0 for i in range(n+1): a += i prin..
Computer Science
https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 문제 해석 반복된 계산을 하기 때문에 for문 혹은 while문을 이용한 반복 구문을 사용합니다. 풀이 입력받은 만큼 반복을 하면 되기 때문에 대표적인 반복 구문 for i in range(T)에서 T를 입력받습니다. 또한 한 줄에 전부 출력하므로 하나의 print()만을 사용합니다. a = int(input()) for i in range(1,10): print(a,'*',i,'=',a*i) int(input())은 input()이 문자로 데이터를 입력받기 때문에 바로 정수로 형변환 해주기..
https://www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 www.acmicpc.net 문제 해석 문제에서 조건의 기준을 "눈이 몇 개 같냐"를 주었고, 주사위 개수를 입력받는 다면 생각할게 많지만 3개로 고정되었기 때문에 단순히 문제가 풀라는 대로 조건을 세우고 연산하면 되는 문제입니다. 풀이 a, b, c = map(int, input().split()) if a == b == c: print(10000 + a * 1000) elif a == b or b == c..
https://www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 문제 해석 https://whitecode2718.tistory.com/61 [백준] 2884번 : 알람 시계 (2단계) (C++) https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있 whitecode27..
https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 문제 해석 문제만 본다면 단순히 받은 시간에 45분을 빼주면 될 것 같지만 1시간이 60분이고 분에 값을 뺀 만큼 시간도 빼줘야 하기 때문에 문제가 어려워 보입니다. 이런 류의 문제를 풀 때 단순히 내가 이 문제를 해결하기 위해서 어떻게 풀건지 생각하는 게 가장 좋습니다. 저 같은 경우 분에 45분을 뺀다면, 빼야 될 분이 45분 이하일 때 시간에 -1을 한 후 분에 60을 더하고 45를 뺀 값이 결과가 ..
https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 문제 해석 정수를 입력받아 조건에 따라 다른 결과를 리턴하는 문제입니다. 이전이 풀었던 점수에 따라 출력이 달라지는 문제와 알고리즘이 동일하는 점을 문제를 통해 알 수 있고, 조건만 이해하면 쉽게 풀 수 있습니다. 풀이 x, y값에 따라 사분면이 달라지고, 그 기준은 x가 양, 음일 때 y가 양, 음 일 때 달라짐을 문제의 그림을 통해 알 수 있습니다. 따라서 조건의 기준은 x가 0보다 큰지, 작은지 와 y가 0보다 큰지, 작은지에 대해 논리식을 세워야 할 것입니다. 처음에 이 문제를 봤을 때 x와 y가 0인..
https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 문제 해석 값이 주어지면 주어진 조건에 맞는지 판단하는 문제이므로 if 구문을 사용할 수 있습니다. 다만 문제에서 주어진 조건을 논리식으로 풀어써야 하는 게 핵심입니다. 풀이 if 구문을 이용해 주어진 조건(윤년) 참이면 1, 거짓이면 0을 출력하는 단순한 문제입니다. 다만 문제에 주어진 조건을 이해하고 코드로 변환하는 게 익숙하지 않다면 조건식을 세우는데 어려움이 있을 겁니다. 파이썬의..
https://www.acmicpc.net/problem/9498 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 해석 특정 범위에 속하면 정해진 출력을 하는 문제이기 때문에 if 구문을 사용합니다. 풀이 if ~ elif 구문을 사용하여 구간을 정해 원하는 출력을 합니다. a = input() a = int(a) if a >= 90: print('A') elif a >= 80: print('B') elif a >= 70: print('C') elif a >= 60: print('D') else: print('F') input()..