본문 바로가기
코딩 어쩌구/코딩테스트

[코드업] 기초 100제 (6001~6095)

by annmunju 2021. 11. 8.

6007

다음 경로를 출력하시오.

"C:\Download\'hello'.py"
(단, 따옴표도 함께 출력한다.)

print("\"C:\Download\\\'hello'.py\"")

 

6008

이번에는 다음과 같은 python프로그램의 소스코드를 출력해보자.

print("Hello\nWorld")

위 코드를 정확히 그대로 출력하시오.(공백문자 주의)

print("print(\"Hello\\nWorld\")")

 

 

6019

"연도.월.일"을 입력받아 "일-월-연도" 순서로 바꿔 출력해보자.

y, m, d = input().split(sep='.')
print(d, m, y, sep='-')

 

6027, 6028

10진수를 입력받아 16진수(hexadecimal)로 출력해보자.

a = input()
n = int(a)            #입력된 a를 10진수 값으로 변환해 변수 n에 저장
print('%x'% n)  #n에 저장되어있는 값을 16진수(hexadecimal) 소문자 형태 문자열로 출력
print('%X' % n)  #n에 저장되어있는 값을 16진수 대문자 형태 문자열로 출력

 

6029

16진수를 입력받아 8진수(octal)로 출력해보자.

a = input()
n = int(a, 16)      #입력된 a를 16진수로 인식해 변수 n에 저장
print('%o' % n)  #n에 저장되어있는 값을 8진수(octal) 형태 문자열로 출력

 

6030, 6031

영문자 1개를 입력받아 10진수 유니코드(Unicode) 값으로 출력해보자.

10진 정수 1개를 입력받아 유니코드 문자로 출력해보자.

n = ord(input())  #입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.
n = chr(int(input())) #입력받은 정수 값을 유니코드 문자(chracter)로 바꿔 n에 저장한다.

 

6043

실수 2개(f1, f2)를 입력받아
f1 을 f2 로 나눈 값을 출력해보자. 이 때 소숫점 넷째자리에서 반올림하여 무조건 소숫점 셋째 자리까지 출력한다.

f1, f2=map(float, input().split())
print( format(f1/f2, ".3f") )

 

6046

정수 1개를 입력받아 2배 곱해 출력해보자.

더보기

*2 를 계산한 값을 출력해도 되지만,
정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 <<, >>를 이용할 수 있다.
컴퓨터 내부에는 2진수 형태로 값들이 저장되기 때문에,
2진수 형태로 저장되어 있는 값들을 왼쪽(<<)이나 오른쪽(>>)으로
지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 1/2로 줄어드는데,

왼쪽 비트시프트(<<)가 될 때에는 오른쪽에 0이 주어진 개수만큼 추가되고,
오른쪽 비트시프트(>>)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가되고,
가장 오른쪽에 있는 1비트는 사라진다.

 

** python에서 실수 값에 대한 비트시프트 연산은 허용되지 않고 오류가 발생한다.
(실수 값도 컴퓨터 내부적으로는 2진수 형태로 저장되고 비트시프트 처리가 될 수 있지만, python 에서는 허용하지 않는다.)

n = 10
print(n<<1)  #10을 2배 한 값인 20 이 출력된다.
print(n>>1)  #10을 반으로 나눈 값인 5 가 출력된다.
print(n<<2)  #10을 4배 한 값인 40 이 출력된다.
print(n>>2)  #10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.

 

6047

정수 2개(a, b)를 입력받아 a를 2b배 곱한 값으로 출력해보자.
0 <= a <= 10, 0 <= b <= 10

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

 

+ bool

 

6056

2개의 정수값이 입력될 때,
그 불 값(True/False) 이 서로 다를 때에만 True 를 출력하는 프로그램을 작성해보자.

a, b = map(int, input().split())
print((not bool(a) and bool(b)) or (bool(a) and not bool(b)))

# if bool(a) != bool(b) : print('True')
# else : print('False')

 

6059

입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자.
비트단위(bitwise)연산자 ~ 를 붙이면 된다.(~ : tilde, 틸드라고 읽는다.)

더보기

** 비트단위(bitwise) 연산자는,
~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),
<<(bitwise left shift), >>(bitwise right shift)
가 있다.

a = int(input())
print(~a)

 

6060, 6061, 6062

입력된 정수 두 개를 비트단위로 and 연산한 후 그 결과를 정수로 출력해보자.
비트단위(bitwise)연산자 &를 사용하면 된다.(and, ampersand, 앰퍼센드라고 읽는다.)

입력된 정수 두 개를 비트단위로 or 연산한 후 그 결과를 정수로 출력해보자.
비트단위(bitwise) 연산자 |(or, vertical bar, 버티컬바)를 사용하면 된다.

입력된 정수 두 개를 비트단위로 xor 연산한 후 그 결과를 정수로 출력해보자.
비트단위(bitwise) 연산자 ^(xor, circumflex/caret, 서컴플렉스/카릿)를 사용하면 된다.

a, b = map(int, input().split())
print(a & b)
print(a | b)
print(a ^ b)

 

6081

16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운 영일이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다.
A, B, C, D, E, F 중 하나가 입력될 때, 1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자. (단, A ~ F 까지만 입력된다.)

n = int(input(), 16)

for i in range(1, 16):
    print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')

 

6082

친구들과 함께 3 6 9 게임을 하던 영일이는 잦은 실수 때문에 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 369 마스터 프로그램을 작성해 보자.

더보기

** 369 게임이란

여러 사람이 순서를 정한 후, 순서대로 수를 부르는 게임이다.
만약 3, 6, 9 가 들어간 수를 자신이 불러야 하는 상황이라면, 수를 부르는 대신 "박수(X)" 를 쳐야 한다.
33과 같이 3,6,9가 두 번 들어간 수 일때, "짝짝"과 같이 박수를 두 번 치는 형태도 있다. 

n = int(input())

for i in range(1, n+1):
    if (i%10) % 3 == 0 and i%10 != 0:
        print('X', end=' ')
    else :
        print(i, end=' ')

 

6087 

1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되,
3의 배수인 경우는 출력하지 않도록 만들어보자.

c = 0
n = int(input())

while True :
    if c>=n :
        break
    c += 1
    if c%3 == 0:
        continue
    else :
        print(c, end=' ')
        
# for i in range(1, n+1) :
#   if i%2==0 :
#     continue            #다음 반복 단계로 넘어간다.
#   print(i, end=' ')    #i가 짝수가 아닐 때만 실행된다.

 

6088, 6089, 6090

어떤 규칙에 따라 수를 순서대로 나열한 것을 수열(sequences)이라고 한다.

시작 값(a), 등차(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때 n번째 수를 출력하는 프로그램을 만들어보자.

시작 값(a), 등비(r), 몇 번째인지를 나타내는 정수(n)가 입력될 때 n번째 수를 출력하는 프로그램을 만들어보자.

시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때, n번째 수를 출력하는 프로그램을 만들어보자.

a, d, n = map(int, input().split())

for i in range(n):
    if i == 0 :
        seqNum = a
    else :
        seqNum += d

print(seqNum)
a, r, n = map(int, input().split())

for i in range(n):
    if i == 0 :
        seqNum = a
    else :
        seqNum *= r

print(seqNum)
a, m, d, n = map(int, input().split())

for i in range(n):
    if i == 0 :
        seqNum = a
    else :
        seqNum = (seqNum*m)+d

print(seqNum)

 

6091

같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가
매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?

a, b, c = map(int, input().split())

d = 1
while d%a!=0 or d%b!=0 or d%c!=0 :
  d += 1
print(d)

 

6092

정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
선생님은 출석부를 보고 번호를 부르는데, 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.
그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러 이름과 얼굴을 빨리 익히려고 하는 것이다.
출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.

n = int(input())
randomN = list(map(int, input().split()))

d = [0 for _ in range(23)]

for i in randomN :
    d[i-1] += 1

for x in d:
    print(x, end=' ')

 

6095

바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자.

d = [[0 for j in range(1,20)] for i in range(1,20)]
n = int(input())
for _ in range(n):
    x, y = map(int, input().split())
    d[x-1][y-1] = 1
    
for i in range(len(d)):
    for j in range(len(d)):
        print(d[i][j], end=' ')
    print('')

 

 

728x90