[기초-종합] 16진수 구구단?

 

16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
영일(01)이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다.

A, B, C, D, E, F 중 하나가 입력될 때,
1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)

 

입력

16진수로 한 자리 수가 입력된다.
단, A ~ F 까지만 입력된다.

출력

입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
계산 결과도 16진수로 출력해야 한다.


입력 예시

B

 

출력 예시

B*1=B

B*2=16

B*3=21

B*4=2C

B*5=37

B*6=42

B*7=4D

B*8=58

B*9=63

B*A=6E

B*B=79

B*C=84

B*D=8F

B*E=9A

B*F=A5

 

 

풀이

 

hexadecimal = input()

if (hexadecimal == "A"):
    hexadecimal_number = 10
    
elif (hexadecimal == "B"):
    hexadecimal_number = 11
    
elif (hexadecimal == "C"):
    hexadecimal_number = 12
    
elif (hexadecimal == "D"):
    hexadecimal_number = 13
    
elif (hexadecimal == "E"):
    hexadecimal_number = 14
    
elif (hexadecimal == "F"):
    hexadecimal_number = 15
    
for i in range(1, 16):
    
    number = (hexadecimal_number * i) // 16
    
    if (number == 0):
        number = ""
        
    elif (number == 10):
        number = "A"
        
    elif (number == 11):
        number = "B"
        
    elif (number == 12):
        number = "C"
        
    elif (number == 13):
        number = "D"
        
    elif (number == 14):
        number = "E"
        
    elif (number == 15):
        number = "F"
        
        
    decimal = (hexadecimal_number * i) % 16
        
    if (decimal == 10):
        decimal = "A"
        
    elif (decimal == 11):
        decimal = "B"
        
    elif (decimal == 12):
        decimal = "C"
        
    elif (decimal == 13):
        decimal = "D"
        
    elif (decimal == 14):
        decimal = "E"
        
    elif (decimal == 15):
        decimal = "F"
        
    if (i == 10):
        i = "A"
        
    elif (i == 11):
        i = "B"
        
    elif (i == 12):
        i = "C"
        
    elif (i == 13):
        i = "D"
        
    elif (i == 14):
        i = "E"
        
    elif (i == 15):
        i = "F"
    
    print(hexadecimal + "*" + str(i) + "=" + str(number) + str(decimal))

설명

잘하는 짓인지는 모르겠지만 일단 Code Up이 정답이라고는 해줬습니다...

python에 좋은 library가 있을 것 같지만 안 찾아보고 한번해봤네요..

 

16진수에 해당하는 문자를 받아서 숫자로 변환된 변수를 선언했습니다.

-> 변환된 숫자로 곱셈을 진행해야 하기 때문에 for문을 사용해줬습니다.

-> 곱셈의 결과를 출력을 위해서 몫은 number로 나머지는 decimal 변수로 선언해줬습니다.

-> 몫과 나머지도 출력시에 16진수에 맞게 출력해야하므로 if문을 활용했습니다.

 

코드블럭을 활용하여 게시물을 작성해봤습니다.

'Algorithms > Code Up 100제' 카테고리의 다른 글

Code Up 기초 100제 - 1084  (0) 2020.01.13
Code Up 기초 100제 - 1083  (0) 2020.01.13
Code Up 기초 100제 - 1081  (0) 2020.01.13
Code Up 기초 100제 - 1080  (0) 2020.01.13
Code Up 기초 100제 - 1079  (0) 2020.01.13

[기초-종합] 주사위를 2개 던지면?(설명)

 

1부터 n까지, 1부터 m까지 숫자가 적힌
서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.

참고
중첩의 원리...
반복 실행 구조도 조건 실행 구조와 마찬가지로 중첩의 원리가 적용된다.
반복 실행 구조를 중첩하면 원하는 반복 구조를 다양하게 만들어 낼 수 있다.

 

입력

주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
단, n, m은 10이하의 자연수

출력

나올 수 있는 주사위의 숫자를 한 세트씩 줄을 바꿔 모두 출력한다.
첫 번째 수는 n, 두 번째 수는 m으로 고정해 출력하도록 한다.


입력 예시

2 3

 

출력 예시

1 1

1 2

1 3

2 1

2 2

2 3

 

 

풀이

 

dice_i, dice_j = map(int, input().split())

 

for dice_i in range(1, (dice_i + 1)):

    for dice_j in range(1, (dice_j + 1)):
        print(dice_i, dice_j)

 

 

설명

 

정수 2개를 입력 받아서 각각 dice_i, dice_j 변수에 int형으로 mapping 해줍니다.

-> 이중 for문을 사용하여 dice_i 변수는 dice_j 변수를 활용한 for문이 다 돌아가고 난 후에 돌아가도록 해줍니다.

-> print문에 출력할 두 변수를 , 로 구분해줄 경우 알아서 공백을 사이에 두고 출력하기 됩니다.

 

 

'Algorithms > Code Up 100제' 카테고리의 다른 글

Code Up 기초 100제 - 1083  (0) 2020.01.13
Code Up 기초 100제 - 1082  (0) 2020.01.13
Code Up 기초 100제 - 1080  (0) 2020.01.13
Code Up 기초 100제 - 1079  (0) 2020.01.13
Code Up 기초 100제 - 1078  (0) 2020.01.13

[기초-종합] 언제까지 더해야 할까?

 

1, 2, 3 ... 을 계속 더해 나갈 때,
그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지
계속 더하는 프로그램을 작성해보자.

즉, 1부터 n까지 정수를 계속 더한다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다.

 

입력

정수 1개가 입력된다.

출력

1, 2, 3, 4, 5 ... 를 순서대로 계속 더해 합을 만들어가다가,
입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.


입력 예시

55

 

출력 예시

10

 

 

풀이

 

number = int(input())
sum = 0

 

for i in range(1, number):

    if (sum >= number):
        print((i-1))
        break

    sum += i

 

 

설명

 

정수를 입력 받는다.

-> 정수의 합을 저장할 변수 선언

-> for문을 활용하여 1부터 더해준다.

-> number까지 더하기 전에 sum은 number과 같거나 초과하므로 for문의 범위를 number까지로 한정한다.

-> if문을 통해 조건을 체킹한 후 조건에 맞으면 마지막에 더한 값을 print해주고 break 해준다.

-> print(i-1)을 해준 이유는 if문에서 조건을 체크해줄 때 마지막에 더한 i는 지나가고 이미 i+1 상태이므로 마지막에 더한 i를 출력해주기 위해서는 i-1을 출력해야한다.

 

 

풀이2

 

number = int(input())
sum = 0
i = 1

 

while(sum < number):

 

    sum += i
    i += 1

print(i-1)

 

 

설명

 

while문을 활용하여도 좋을 것 같다.

-> while문이 돌아가는 조건을 sum >= number이면 돌아가지 않게 설정해준다.

-> sum에 i를 넣어주고 i는 1씩 증가

-> 마지막 값을 출력 해야하므로 i-1을 출력

'Algorithms > Code Up 100제' 카테고리의 다른 글

Code Up 기초 100제 - 1082  (0) 2020.01.13
Code Up 기초 100제 - 1081  (0) 2020.01.13
Code Up 기초 100제 - 1079  (0) 2020.01.13
Code Up 기초 100제 - 1078  (0) 2020.01.13
Code Up 기초 100제 - 1077  (0) 2020.01.13