기본문제 1단계에 해당하는
백준 온라인 코딩문제 풀어보기
1단계 [입출력과 사칙연산] 입니다.
총 11문제인데요.
전부 하나하나 같이 풀어보면서
리뷰해보겠습니다.
문제 1.
Hello World! 를 출력하시오.
print("Hello World!")
이 부분은 참 쉽죠잉?! 빠르게 다음으로 넘어갑시다.
문제 2.
강한친구 대한육군
강한친구 대한육군 을 출력하는 문제
print("강한친구 대한육군\n강한친구 대한육군")
핵심 - \n은 줄바꿈 기능을 한다!!
문제 3.
다음과 같은 고양이 모양을 출력하시오.
print("\ /\\")
print(" ) ( ')")
print("( / )")
print(" \(__)|")
핵심 - "(쌍따옴표) 앞에 \(역슬래쉬)를 출력하려면 앞에 \를 하나 더 붙여주면 된다. 이스케이프와 관련 된 문제이다. 다양한 이스케이프 문자는 다음에 한 번 나의 블로그에서 또 글을 다루도록 하겠다.
문제 4.
다음과 같은 개 모양을 출력하시오.
print("|\_/|")
print("|q p| /}")
print("( 0 )\"\"\"\\")
print("|\"^\"` |")
print("||_/=\\\__|")
핵심 - 3번줄과 4번줄 5번줄을 고쳐주었다. 3번줄에서 "(쌍따옴표)를 문자로 인식하기 위해서는 앞에 \(역슬러쉬)가 붙으면 된다. 4번 줄은 "(쌍따옴표)를 마찬가지로 앞에 \(역슬러쉬)를 붙여서 출력하였다. 5번줄은 \(역슬러쉬)가 2개가 붙으면 하나만 출력되므로(이스케이프), \\ (역슬러쉬 2개를 붙여주면 된다.
문제 5.
a+b를 출력하시오.
a,b = input().split()
a= int(a)
b= int(b)
print(a+b)
핵심 - a와 b를 동시에 받고 a 인트, b인트 인자로 변환한다. a+b를 출력한다.
문제 6.
a-b를 출력하시오.
a,b = input().split()
a= int(a)
b= int(b)
print(a-b)
핵심 - 로직이 위와 동일.
문제 7.
a*b를 출력하시오.
a,b = input().split()
a= int(a)
b= int(b)
print(a*b)
핵심 - 로직이 위와 동일.
문제 8.
a/b를 출력하시오.
a,b = input().split()
a= int(a)
b= int(b)
print(a/b)
핵심 - 로직이 위와 동일.
문제 9.
두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.
a, b = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(int(a/b))
print(a%b)
핵심 - 내장 함수 map 안에 int, input, split을 한 번에 넣었다. %는 나머지를 구하는 기호라고 알아두자.
문제 10.
(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?
(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?
세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.
A,B,C = map(int,input().split())
print((A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C, sep='\n')
핵심 - 위에는 일일이 모든 줄에 print가 붙었지만 이번에는 깔끔하게 sep='\n'을 이용하여 ,(콤마)가 끝나면 자동으로 줄바꿈이 되게 하였다.
문제 11.
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
A = int(input())
B = input()
AXB2 = A* int(B[2])
AXB1 = A* int(B[1])
AXB0 = A* int(B[0])
AXB = A* int(B)
print(AXB2, AXB1, AXB0, AXB, sep='\n')
핵심 - B는 처음에 문자열로 반환한다. 한 자리 씩 떼어서 곱셈을 진행해야 하기 때문이다.
또 다른 방법
a = int(input())
b = int(input())
print(a*(b%10),a*((b//10)%10),a*(b//100),a*b)
핵심 - 앞에 코드 보다 훨씬 짧고 깔끔, 그냥 나눗셈/을 하면 int형이 안 나오기 때문에 //로 실행한다.
a = 444 , b = 243
444 * 243 = 107,892
print ( 444*3, 444*4, 444*2, 444*243) 이런 식이 된다.
Swift 공부를 하다가 국내에는 아직 무료 및 유료 강의 중 좋은 강의를 발견 하지 못 하기도 했고, 외국 강의를 듣다가 이해하기도 힘들고, 똑같은 알고리즘 문제인데도 뭔가 풀기 어려웠는데 확실히 파이썬이라는 언어가 더 쉽고 사용범위도 넓어서 배울 맛이 나는 것 같다.
물론 Swift 언어를 포기한 건 아니지만 당분간은 Python(파이썬) 언어에 집중하도록 하겠다.
'Tech Blog > Online Coding Test' 카테고리의 다른 글
백준 파이썬 while 문제 풀기 (0) | 2021.05.07 |
---|---|
파이썬 백준 if 문제 정복하기. (0) | 2021.05.04 |
백준 swift 온라인코딩테스트 1단계 문제 6번~11번 (0) | 2021.04.24 |
백준 프로그래밍1단계 swift 기본출력 (0) | 2021.04.22 |
Swift 온라인코딩테스트 lv1 문자열 변환 문제2 (0) | 2021.04.22 |