문제 링크 https://www.acmicpc.net/problem/2563 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 풀이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지를 space 리스트로 나타낸다. 리스트 안은 모두 0으로 채운다. 입력받은 검은색 색종이 넓이의 공간을 1로 바꿔준..
파이썬
문제 링크 https://www.acmicpc.net/problem/4344 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 풀이 score = list(map(int, sys.stdin.readline().split())) student = score[0] del score[0] student는 학생의 수, score는 n명의 점수이다. for s in score: if s > sum(score) / student: cnt += 1 평균이 넘는 학생들의 수를 센다. print(f'{cnt / student * 100:.3f}', '%', sep='') (평균이 넘는 학생들의 수) / (전체 학생 수) * 100을 출력한다. 코드 im..
문제 링크 https://www.acmicpc.net/problem/8958 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 풀이 OX 퀴즈의 결과를 하나의 문자열로 입력받아 반복문을 돌렸다. cnt는 해당 문제의 점수이고, score는 전체 합산 점수이다. O이면 cnt에 +1을 하여 계속 O가 나오면 점수가 1점, 2점, 3점 이런 식으로 점점 오르도록 하였다. 해..
문제 링크 https://www.acmicpc.net/problem/2744 문제 영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오. 풀이 입력받은 단어를 문자열 함수 swapcase()를 사용해 대문자는 소문자로, 소문자는 대문자로 변환해서 출력한다. swapcase()는 대문자는 소문자로, 소문자는 대문자로 각각 변환해주는 문자열 함수이다. 코드 print(input().swapcase())
문제 링크 https://www.acmicpc.net/problem/1373 문제 2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오. 풀이 먼저 숫자를 입력받는다. int() 함수의 default는 10진수이기 때문에 진법을 2로 지정해준다. 문자열 함수 oct()를 사용해 주어진 2진수를 8진수로 변환한다. 8진수는 숫자 앞에 0o가 붙는다. 예제 출력은 0o 없이 숫자만 출력했으므로 슬라이싱해서 숫자만 출력해준다. 코드 print(oct(int(input(), 2))[2:])
문제 링크 https://www.acmicpc.net/problem/2588 문제 (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오. 풀이 (3) a * (b % 10) 문제의 주어진 식에서 472X5 계산을 한 자리이다. 472는 a이고 5는 385를 10으로 나누었을 때의 나머지이므로 b%10으로 표현한다. 따라서 (3)은 a*(b%10)이 된다. (4) a * ((b // 10) % 10) 문제의 주어진 식에서 472X8 계산을 한 자리이다. 472는 a이다. 8은 먼저, 385를 10으로 나누었을 때 몫은 38이다. 38을 10으로 나..
문제 링크 https://www.acmicpc.net/problem/10869 문제 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 풀이 a와 b를 int형으로 입력받는다. 사칙연산 식을 출력한다. 문제에서 주어진 A/B(몫)의 경우, 나머지 없이 몫만 출력해야 하므로 버림나눗셈을 이용한다. int(a/b)라고 표현해도 무관하다. 코드 a, b = map(int, input().split()) print(a+b) print(a-b) print(a*b) print(a//b) print(a%b)
문제 링크 https://www.acmicpc.net/problem/2754 문제 어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. A+: 4.3, A0: 4.0, A-: 3.7 B+: 3.3, B0: 3.0, B-: 2.7 C+: 2.3, C0: 2.0, C-: 1.7 D+: 1.3, D0: 1.0, D-: 0.7 F: 0.0 풀이 딕셔너리를 이용해 풀었다. 딕셔너리는 사전처럼 2개의 요소를 하나로 묶어 표현한 자료형이다. 코드 dic = {'A+':'4.3', 'A0':'4.0', 'A-':'3.7', 'B+':'3.3', 'B0':'3.0', 'B-':'2.7', 'C+':'2.3', 'C0':'2.0', 'C-':'1.7', 'D+':'1.3', 'D0':..