CodeUp 기초5-1(1차원 배열)
1402 : 거꾸로 출력하기 3
두 수를 거꾸로 출력하기..
세 수를 거꾸로 출력하기…
이런 문제들은 쉽게 풀 수 있었다.
이번에는 데이터의 개수가 n개가 들어오고, n개의 데이터를 거꾸로 출력하는 프로그램을 작성하시오.
n = int(input())
arr = list(map(int, input().split()))[::-1]
for i in arr:
print(i, end=' ')
5 1 3 5 6 8 8 6 5 3 1
1403 : 배열 두번 출력하기
k개의 숫자를 입력받고 그 숫자들을 두번 출력하시오.
입력 예)
2
5 7
출력 예)
5
7
5
7
k = int(input())
arr = list(map(int, input().split()))
for i in range(len(arr)*2):
print(arr[i%k])
1 4 4 4
1405 : 숫자 로테이션
n개의 숫자가 입력되면,
n개의 숫자를 왼쪽으로 하나씩 돌려서 출력하시오.
예) 1 2 3 4 5가 입력된 경우,
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
n = int(input())
arr = list(map(int, input().split()))
for i in range(n):
for j in range(n):
print(arr[(j+i) % n], end=' ')
print()
5 1 2 3 4 5 1 2 3 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4
1407 : 문자열 출력하기 1
길이(글자수)가 100이하인 문자열을 입력받아 공백을 제거하고 출력하시오.
sen = input()
print(sen.replace(' ', ''))
abC Def gh abCDefgh
1409 : 기억력 테스트 1
주현이는 5살이라서 아직 기억력이 좋지 않은 편이다.
주현이 엄마는 주현이의 기억력을 향상시키기 위해 매일 훈련을 시킨다.
어느 날, 주현이 엄마는 주현이에게 10개의 숫자를 차례대로 말한 다음 “k번째 숫자는 뭘까요?”하고 물어본다.
이번에는 주현이가 좋아하는 ‘또봇’이라는 로봇변신 자동차가 상품으로 걸려있다.
주현이가 ‘또봇’을 가질 수 있도록 프로그래밍하시오.
arr = list(map(int, input().split()))
k = int(input())
print(arr[k-1])
10 9 8 7 6 5 4 3 2 1 3 8
1410 : 올바른 괄호 1 (괄호 개수 세기)
프로그래밍을 할 때 가장 중요한 것 중 하나가 괄호의 개수를 맞추는 것이다.
즉, 여는 괄호가 있으면 항상 닫는 괄호가 있고, 닫는 괄호가 있으면 여는 괄호도 있어야 한다.
올바른 괄호를 확인하기 위해 가장 기본적인 방법 중 하나는 여는 괄호와 닫는 괄호의 개수를 세는 것이다.
소괄호로 이루어진 문자열을 주어지면 괄호의 개수를 출력하는 프로그램을 작성하시오.
sen = input()
print(sen.count('('), sen.count(')'))
((())()(())) 6 6
1411 : 빠진 카드
우리는 1부터 N까지의 숫자가 차례대로 적힌 N장의 카드 묶음을 가지고 있다.
그런 데 이 카드 묶음을 옮기는 중 실수로 땅에 떨어뜨려 그 중 한 장을 잃어버렸다.
여러 분은 땅에 떨어진 카드 묶음을 읽어서 빠진 하나의 카드 번호를 찾아 출력해야 한다.
from collections import deque
N = int(input())
card = [0] * N
card = deque(card)
for _ in range(N-1):
n = int(input())
card[n-1] += 1
print(card.index(0) + 1)
10 3 4 1 10 2 6 7 5 9 8
1412 : 알파벳 개수 출력하기
영어 공부에 빠져 있는 주현이는 영어 책을 자주 본다.
어느 날 영어 문장을 보면서 어떤 알파벳 문자가 많이 사용되는지 궁금해졌다.
영어 문장이 주어지면 a부터 z까지 알파벳 문자가 각각 몇 번 나왔는지 출력하는 프로그램을 작성하시오.
sen = input()
alphas = [0] * 26
for alpha in sen:
if 97 <= ord(alpha) <= 122:
alphas[ord(alpha) - 97] += 1
for i in range(len(alphas)):
print('{}:{}'.format(chr(i+97), alphas[i]))
oh! my god! a:0 b:0 c:0 d:1 e:0 f:0 g:1 h:1 i:0 j:0 k:0 l:0 m:1 n:0 o:2 p:0 q:0 r:0 s:0 t:0 u:0 v:0 w:0 x:0 y:1 z:0
1416 : 2진수 변환
어떤 10진수 n이 주어지면 2진수로 변환해서 출력하시오.
예)
10 —–> 1010
0 —–> 0
1 —–> 1
2 —–> 10
1024 —–> 10000000000
n = int(input())
print(format(n, 'b'))
7 111
1420 : 3등 찾기
민준이는 뒤늦게 정보 과목의 중요성을 깨닫고 학습실에서 공부를 하고 있다.
기본 공부가 너무 안 되어 있어 아주 쉬운 문제부터 어려움을 겪은 민준이는 친구에게 물어보려고 한다.
가장 잘 하는 친구에게 물어보기는 질문의 내용이 너무 부끄러워 n명의 친구들 중 정보 성적이 3번째로 높은 친구에게 묻고자 한다.
친구들의 성적은 모두 다르다.
n명의 친구들의 이름과 정보 성적이 주어졌을 때 성적이 세 번째로 높은 학생의 이름을 출력하시오.
import heapq
n = int(input())
h = []
result = []
names, scores = [], []
for _ in range(n):
name, score = input().split()
names.append(name)
scores.append(int(score))
heapq.heappush(h, -int(score))
for _ in range(len(h)):
result.append(-heapq.heappop(h))
print(names[scores.index(result[2])])
5 minsu 78 gunho 64 sumin 84 jiwon 96 woosung 55 minsu
1425 : 자리 배치
A중학교에 첫 발령을 받은 B교사는 1학년 1반 담임을 맡게 되었다.
기대를 안고 첫 출근한 B교사는 너무 설렌 나머지 학생들이 등교하기도 전에 교실에 가서 학생들이 오기만을 기다리고 있었다.
그리고 제일 먼저 무슨 일을 해야 될지 생각하던 중 학생들 자리 배치를 우선적으로 해야겠다고 생각했다.
여러 가지 자리 배치 방법을 고려하다가 학생들의 키가 작은 순서대로 앞에서부터 앉히는 것이 제일 좋은 방법이라고 결정하게 되었다.
예를 들어, 160, 165, 164, 165, 150, 165, 168, 145, 170의 학생들 키가 주어지고 한 줄에 6명씩 앉는다면 다음과 같이 앉으면 될 것이다.
145 150 160 164 165 165
165 168 170
왼쪽 위부터 차례대로 키 순서대로 앉으며 한 줄이 다 찼을 경우 다음 줄로 넘어간다. 다음 줄도 마찬가지로 왼쪽부터 채운다.
이와 같이 학생의 키순서대로 자리를 배치하는 프로그램을 작성하시오.
import heapq
N, C = map(int, input().split())
students = list(map(int, input().split()))
h, result = [], []
for value in students:
heapq.heappush(h, value)
for _ in range(len(h)):
result.append(heapq.heappop(h))
for i in range(1, len(result)+1):
print(result[i-1], end=' ')
if i % C == 0:
print()
9 6 160 165 164 165 150 165 168 145 170 145 150 160 164 165 165 165 168 170
1430 : 기억력 테스트 2
주현이 엄마는 주현이를 영재로 키우기 위해 매일 혹독한 기억력 테스트를 하고 있다.
N개의 숫자를 먼저 말해주고, M개의 질문을 하면서 그 숫자가 있었는지 없었는지 테스트한다.
만약 있었다면 1을 출력하고, 없었다면 0을 출력한다.
이번에는 주현이가 좋아하는 3단 합체 변신로봇 ‘또봇 트라이탄’이 선물로 걸려있다.
주현이를 도와 줄수 있는 프로그램을 만드시오.
from collections import deque
import sys
import numpy as np
N = int(sys.stdin.readline().rstrip())
N_list = np.array(list(map(int, sys.stdin.readline().rstrip().split())))
M = int(sys.stdin.readline().rstrip())
M_list = np.array(deque(list(map(int, sys.stdin.readline().rstrip().split()))))
for i in range(M):
if M_list[i] in N_list:
print(1, end=' ')
else:
print(0, end=' ')
결과는 제대로 나오는데 메모리 초과로 통과를 못하고 있다. 찾아보니 이 문제는 파이썬으로 풀 수 없다는데 좀 더 생각해봐야겠다.
1440 : 비교
n개의 숫자가 입력되면, 다음과 같이 크기를 비교한 후 양식에 맞춰 출력하시오.
예를 들어, 1 2 3 2 1 이라는 숫자가 입력되면,
첫 번째 1과 나머지 2, 3, 2, 1을 비교하면 1 < 2, 1 < 3, 1 < 2, 1 = 1 이므로 < < < = 를 출력한다.
두 번째 2와 나머지 1, 3, 2, 1을 비교하면 2 > 1, 2 < 3, 2 = 2, 2 > 1 이므로 > < = > 를 출력한다.
세 번째 3과 나머지 1, 2, 2, 1을 비교하면 3 > 1, 3 > 2, 3 > 2, 3 > 1 이므로 > > > > 를 출력한다.
같은 방법으로 네 번째는 > = < >, 다섯번째는 = < < < 를 출력한다.
이와 같은 방식의 대소 비교 결과를 출력하시오.
n = int(input())
arr = list(map(int, input().split()))
for i in range(n):
print('{}: '.format(i+1), end='')
for j in range(n):
if i == j:
continue
if arr[i] > arr[j]:
print('>', end=' ')
elif arr[i] < arr[j]:
print('<', end=' ')
else:
print('=', end=' ')
print()
5 1 2 3 2 1 1: < < < = 2: > < = > 3: > > > > 4: > = < > 5: = < < <
댓글남기기