목록전체 글 (214)
NIRVANA
문제 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 문제 접근법1 1) 문자열 s를 리스트로 변경 후, 리스트의 길이 만큼 반복문을 진행 2) 첨자 j=0를 따로 사용하여 문장을 단어로 나눔 3) 만약 j가 짝수이거나 0이면 문자를 대문자로 변경하고 4) 만약 j가 홀수이면 문자를 소문자로 변경 5) j에 1을 더해 다음 문자를 판별할 수 ..
문제 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요 문제 접근법 1) 입력받은 n을 3으로 나누어 3진법으로 변환한다. (이때, 거꾸로 저장되므로 다시 뒤집어줘야 원래 수가 나온다) 2) str형인 3진법을 list로 변환한 뒤, 뒤집는다. 3) 다시 str형으로 변환한 후, 10진법으로 변환한다. 참고: https://velog.io/@code_angler/파이썬-진수변환2진법-3진법-5진법-10진법n진법 파이썬 진수변환(2진법, 3진법, 5진법, 10진법)[n진법] python에서는 기본적으로 int() 라는 함수를 지원한다int(string, base)2051104185276710..
*파이썬 버전이 여러개 깔려 있는데 이중 matplotlib이 도대체 어디에 설치되어 있는지를 모르겠어서..그냥 코랩에서 했다..^~^ import tensorflow as tf import tensorflow.keras.datasets as ds import matplotlib.pyplot as plt (x_train, y_train), (x_test, y_test) = ds.mnist.load_data() print(x_train.shape, y_train.shape, x_test.shape, y_test.shape) x의 데이터 형태를 보면 각각 28x28맵이 60,000장 10,000만장 쌓여있는 3차원 구조임을 알 수 있다. plt.figure(figsize=(24, 3)) plt.suptitl..
문제 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 문제 풀이 접근법1 1) arr의 i번째 원소와 i+1번째 원소를 비교하여 같으면 리스트에서 i번째 원소를 삭제한다..
문제 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 문제 풀이 접근법1 처음에는 유클리드 알고리즘을 사용해서 문제를 푸는 방법을 생각했다. 1) n % m == r(단, n > m)일때, n과 m의 최대 공약수는 m과 r의 최대 공약수와 같고 만약 m == 0이면 m이 n과 m의 최대 공약수가 된다. 2) 두 수의 곱은 최대 공약수와 최대 공배수의 곱이므로 두수의 곱을 최대 공약수로 나누면 최대 공배수를 구할 수 있다. def solution(n..
문제 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 문제 풀이 접근법1 1) 세로의 개수 m만큼 반복 2) 가로의 개수 n * "*" 개 출력 a, b = map(int, input().strip().split(' ')) for i in range(b): print("*"*a) 다른 분들 풀이 a, b = map(int, input().strip().split(' ')) answer = ('*'*a +'\n')*b print(answer) 와 생각해보니 그냥 b(m)도 곱해주면 되는거였잖아...? 무조건 for문 사용하는 습관 진짜 버려야할 것 같다!! 참, 기존에 주어진 코드에서 strip()..