💻STUDY/BOJ

[BOJ] Bronze V 부수기: 첫번째 날

coldNoodlePigeon 2021. 12. 27.
  • 코딩 초보. 효율적인 코드 구현이 아닐 수 있습니다. 
  • 구현언어: Python 
  • 푼 문제: 1000,1001,1271,1550,2338 
  • 못 푼 문제: 0개 


1000. A+B 

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 

 

(a,b)=map(int,input().split())
print(a+b)

#간단한 문제. map을 이용하여 int로 변환시켰다. 

 

 

1001. A-B 

두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.

(a,b)=map(int,input().split())
print(a-b)

#이것 또한 간단한 문제. 위 문제의 수식 변형이다. 

 

1271. 엄청난 부자2 

첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수) 

첫째 줄에 생명체 하나에게 돌아가는 돈의 양을 출력한다. 그리고 두 번째 줄에는 1원씩 분배할 수 없는 남는 돈을 출력한다. 

(a,b)=map(int,input().split())
print("%d\n%d" %(a//b,a%b))

#마찬가지로 간단한 수식 문제 

 

1550. 16진수 

16진수 수를 입력받아서 10진수로 출력하는 프로그램을 작성하시오. 

a=list(input())
index=len(a)
sum=0
hexlst={'A':10,'B':11,'C':12,'D':13,'E':14,'F':15} 
for i in range(0,len(a)):
    if(a[i].isdigit()==True):
        a[i]=int(a[i])*(16**(index-1))
    else: 
        a[i]=hexlst[a[i]]
        a[i]=int(a[i])*(16**(index-1))
    index=index-1
for k in range(0,len(a)):
    sum=sum+a[k]
print(sum)

#문법을 까먹어버려서 이렇게 길게..비효율적으로 코드를 짜버렸다. Dictionary에 16진수 값을 저장해두고 for반복문을 사용하여 리스트를 통한 접근을 통해 각자리를 직접 16진수로 변환시켜주었는데.... 바보 하지만 기본 문법을 기억하고 있었더라면 한줄로 코드 구현이 가능하다. 문법 복습 하자.... 

print(int(input(),16))

//심심해서 c언어로도 구현해봤다. 

#include <stdio.h>

main() {
	int a;
	scanf("%x", &a);
	printf("%d", a); 
}

2338. 긴자리 계산 

두 수 A, B를 입력받아, A+B, A-B, A×B를 구하는 프로그램을 작성하시오. 

a=int(input())
b=int(input())
print("%d\n%d\n%d" %(a+b,a-b,a*b))

#마찬가지로 간단한 수식 문제. 

 

 


C언어를 금방 배우고 왔더니 파이썬 배웠던 것들이 가물가물하다.. 복습을 이 참에 좀 열심히 해둬야겠다는 생각이 자꾸 든다. 

 

댓글