2023년 3월 3일 금요일

2022년 03월 03일 주도 테마

 장전 지수브리핑


다우 +1.05%, 나스닥 +0.73%, S&P500 +0.76%, 야간선물 +0.54%, 환율 1309원(-7원), 반도체지수 +0.96%, 국제유가 78달러(+0.37%), 미국채10년 4.06%(+7.5bp)


-미국 증시가 지속적인 긴축 이슈에도 불구하고 예상보다 견조한 경기와 중국 지표 호조, 보스틱 애틀랜타 연은 총재의 25bp 인상 지지 발언에 다우 중심으로 급등 마감

-------------------------------------------------------


주도 테마




⏺저출산 (꿈비, 캐리소프트, 메디앙스, 제로투세븐, 아가방컴퍼니, 비스토스)


⏺로봇 (에스비비테크,뉴로메카,다믈멀티미디어,레인보우로보틱스,로보로보,로보스타,코닉오토)


⏺폐배터리 - 새빗켐, 성일하이텍,영화테크 아이에스동서, NPC, 이지트로닉스


⏺AI반도체(오픈엣지테크놀러지,가온칩스,넥스트칩,미래반도체,엠케이전자, 윈팩, 제주반도체)


⏺AI (코난테크놀러지,셀바스AI 솔트룩스,오브젠 씨이랩) 


⏺5G (기가레인,오이솔루션 와이어블, 텔레필드, 에스넷)


⏺리튬 (금양미래나노텍, 하이드로리튬,, 강원에너지, 웰크론한텍)


⏺전기차충전 ( 휴맥스홀딩스, 에스트래픽, 디스플레이텍, 알티캐스트,)


⏺증권형토크(STO)(sk증권,갤럭시아머니트리,우리기술투자, 서울옥션,FSN,바른손)


⏺메타버스 (포바이포,맥스트, 자이언트스텝, 코세스, 엔피 선익시스템, 뉴프렉스, 나무가, 스코넥)




오전에 집중할 섹터


저출산테마,로봇,중국양회

2023년 2월 1일 수요일

위헌법률심판

  헌법재판소법 제41조 제1항의 재판이라 함은 판결․결정․명령 등 그 형식 여하와 본안에 관한 재판이거나 소송절차에 관한 재판이거나를 불문하며 심급을 종국적으로 종결시키는 종국재판뿐만 아니라 중간재판도 이에 포함된다.

 헌법재판소법 제41조 제1항에 따른 법률의 위헌 여부 심판의 제청신청이 기각된 때에 그 신청을 한 당사자는 헌법재판소에 헌법재판소법 제68조 제2항의 헌법소원심판을 청구할 수 있다.

 법원이 헌법재판소에 법률의 위헌 여부의 심판을 제청한 때에는 당해 소송사건의 재판은 헌법재판소의 위헌 여부의 결정이 있을 때까 지 정지되나, 다만 법원이 긴급하다고 인정하는 경우에는 종국재판 외의 소송절차를 진행할 수 있다.

 군사법원도 위헌법률심판을 제청할 수 있다.

 대법원 외의 법원은 대법원을 거칠 필요 없이 직접 헌법재판소에 헌법재판소법 제41조 제1항의 위헌심판 제청을 할 수 있다

  ->대법원 외의 법원이 위헌제청을 할 때에는 대법원을 거쳐야 한다(헌법재판소법 제41조 제5항).

가위 바위 보

 가위 바위 보

문제 설명

가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.


제한사항

0 < rsp의 길이 ≤ 100

rsp와 길이가 같은 문자열을 return 합니다.

rsp는 숫자 0, 2, 5로 이루어져 있습니다.

입출력 예

rsp result

"2" "0"

"205" "052"

입출력 예 설명

입출력 예 #1

"2"는 가위이므로 바위를 나타내는 "0"을 return 합니다.

입출력 예 #2

"205"는 순서대로 가위, 바위, 보이고 이를 모두 이기려면 바위, 보, 가위를 순서대로 내야하므로 “052”를 return합니다.


def solution(rsp):

    answer = ''

    for i in rsp:

        if i == '2':

            answer += '0'

        elif i == '0':

            answer += '5'

        else:

            answer += '2'

    return answer


def solution(rsp):
    d = {'0':'5','2':'0','5':'2'}
    return ''.join(d[i] for i in rsp)


def solution(rsp):
    rsp =rsp.replace('2','s')
    rsp =rsp.replace('5','p')
    rsp =rsp.replace('0','r')
    rsp =rsp.replace('r','5')
    rsp =rsp.replace('s','0')
    rsp =rsp.replace('p','2')
    return rsp


def solution(rsp):
    answer = ''
    for i in list(map(int, rsp)):
        if i == 0:
            answer += str(5)
        elif i == 2:
            answer += str(0)
        else:
            answer += str(2)
    return answer



2023년 1월 26일 목요일

개미 군단

 개미 군단

문제 설명

개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.


제한사항

hp는 자연수입니다.

0 ≤ hp ≤ 1000

입출력 예

hp result

23 5

24 6

999 201

입출력 예 설명

입출력 예 #1

hp가 23이므로, 장군개미 네마리와 병정개미 한마리로 사냥할 수 있습니다. 따라서 5를 return합니다.

입출력 예 #2

hp가 24이므로, 장군개미 네마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 6을 return합니다.

입출력 예 #3

hp가 999이므로, 장군개미 199 마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 201을 return합니다.


def solution(hp):

    answer = 0

    if hp > 5:

        answer = int(hp/5) + int((hp%5)/3) + int((hp%5)%3)

    elif hp > 3:

        answer = int((hp%5)/3) + int((hp%5)%3)

    else:

        answer = hp

    return answer


수정

def solution(hp):

    answer = 0

    if hp >= 5:

        answer = int(hp/5) + int((hp%5)/3) + (hp%5)%3

    elif hp >= 3:

        answer = int((hp%5)/3) + (hp%5)%3

    else:

        answer = hp

    return answer

진료 순서 정하기

진료 순서 정하기

문제 설명

외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

중복된 원소는 없습니다.

1 ≤ emergency의 길이 ≤ 10

1 ≤ emergency의 원소 ≤ 100

입출력 예

emergency result

[3, 76, 24] [3, 1, 2]

[1, 2, 3, 4, 5, 6, 7] [7, 6, 5, 4, 3, 2, 1]

[30, 10, 23, 6, 100] [2, 4, 3, 5, 1]

입출력 예 설명

입출력 예 #1

emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 return합니다.

입출력 예 #2

emergency가 [1, 2, 3, 4, 5, 6, 7]이므로 응급도의 크기 순서대로 번호를 매긴 [7, 6, 5, 4, 3, 2, 1]를 return합니다

입출력 예 #3

emergency가 [30, 10, 23, 6, 100]이므로 응급도의 크기 순서대로 번호를 매긴 [2, 4, 3, 5, 1]를 return합니다.


def solution(emergency):

    answer = []

    for i in emergency:

        answer += str(sorted(emergency, reverse = True).index(i)+1)

    return [int(x) for x in answer] 

외계행성의 나이

 외계행성의 나이

문제 설명

우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.


제한사항

age는 자연수입니다.

age ≤ 1,000

PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다.

입출력 예

age result

23 "cd"

51 "fb"

100 "baa"

입출력 예 설명

입출력 예 #1

age가 23이므로 "cd"를 return합니다.

입출력 예 #2

age가 51이므로 "fb"를 return합니다.

입출력 예 #3

age가 100이므로 "baa"를 return합니다.


def solution(age):

    answer = ''

    index = 'abcdefghij'

    for i in str(age):

        answer += index[int(i)]

    return answer

2023년 1월 25일 수요일

문자열안에 문자열

 문자열안에 문자열

문제 설명

문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.


제한사항

1 ≤ str1의 길이 ≤ 100

1 ≤ str2의 길이 ≤ 100

문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.

입출력 예

str1 str2 result

"ab6CDE443fgh22iJKlmn1o" "6CD" 1

"ppprrrogrammers" "pppp" 2

"AbcAbcA" "AAA" 2

입출력 예 설명

입출력 예 #1

"ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.

입출력 예 #2

"ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.

입출력 예 #3

"AbcAbcA" str1에 str2가 없으므로 2를 return합니다.



def solution(str1, str2):

    answer = 0

    if str1.rfind(str2) >= 0:

        answer = 1

    else:

        answer = 2

    return answer

자릿수 더하기

 자릿수 더하기

문제 설명

정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요


제한사항

0 ≤ n ≤ 1,000,000


입출력 예

n result

1234 10

930211 16


입출력 예 설명

입출력 예 #1

1 + 2 + 3 + 4 = 10을 return합니다.

입출력 예 #2

9 + 3 + 0 + 2 + 1 + 1 = 16을 return합니다.


def solution(n):

    answer = 0

    for i in str(n):

        answer += int(i)

    return answer


def solution(n):
    answer = 0
    while n:
        n, r = divmod(n, 10)
        answer += r
    return answer


def solution(n):
    answer = 0
    while n:
        answer += n%10
        n //= 10
    return answer



직각삼각형 출력하기

 직각삼각형 출력하기

문제 설명

"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.


제한사항

1 ≤ n ≤ 10

입출력 예

입력 #1


3

출력 #1


*

**

***

입출력 예 설명

입출력 예 #1

n이 3이므로 첫째 줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출력합니다.



n = int(input())

for i in range(1,n+1):

    print("*"*i)

2023년 1월 20일 금요일

2023년 1월 20일 추천주

 


F&F홀딩스(007700)
EPS rate : 293.9%



DL이앤씨(375500)
EPS rate : 73.5%




바이오노트(377740)
EPS rate : 81.3%

2023년 1월 19일 목요일

순서쌍의 개수

 순서쌍의 개수

문제 설명

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.


제한사항

1 ≤ n ≤ 1,000,000

입출력 예

n result

20 6

100 9

입출력 예 설명

입출력 예 #1

n이 20 이므로 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return합니다.

입출력 예 #2

n이 100 이므로 곱이 100인 순서쌍은 (1, 100), (2, 50), (4, 25), (5, 20), (10, 10), (20, 5), (25, 4), (50, 2), (100, 1) 이므로 9를 return합니다.


def solution(n):

    answer = 0

    for i in range(1,n+1):

        if n % i == 0:

            answer += 1

    return answer


def solution(n):
    return len(list(filter(lambda v: n % (v+1) == 0, range(n))))


def solution(n):
    answer =0 
    for i in range(n):
        if n % (i+1) ==0:
            answer +=1
    return answer



배열의 유사도

 배열의 유사도

문제 설명

두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.


제한사항

1 ≤ s1, s2의 길이 ≤ 100

1 ≤ s1, s2의 원소의 길이 ≤ 10

s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다

s1과 s2는 각각 중복된 원소를 갖지 않습니다.

입출력 예

s1 s2 result

["a", "b", "c"] ["com", "b", "d", "p", "c"] 2

["n", "omg"] ["m", "dot"] 0

입출력 예 설명

입출력 예 #1

"b"와 "c"가 같으므로 2를 return합니다.

입출력 예 #2

같은 원소가 없으므로 0을 return합니다.


def solution(s1, s2):

    answer = 0

    for i in s1:

        for j in s2:

            if i == j:

                answer += 1

                break

    return answer


def solution(s1, s2):
    return len(set(s1)&set(s2));



2
3
4
5
def solution(s1, s2):
    dic = {i:1 for i in s1}
    answer = sum(dic.get(j,0)for j in s2)
    return answer




편지

 편지

문제 설명

머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.


제한사항

공백도 하나의 문자로 취급합니다.

1 ≤ message의 길이 ≤ 50

편지지의 여백은 생각하지 않습니다.

message는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다.

입출력 예

message result

"happy birthday!" 30

"I love you~" 22

입출력 예 설명

입출력 예 #1

message의 글자 수가 15개로 최소 가로 30cm의 편지지가 필요합니다.

입출력 예 #2

message의 글자 수가 11개로 최소 가로 22cm의 편지지가 필요합니다.


def solution(message):

    answer = 0

    answer = len(message) * 2

    return answer

문자 반복 출력하기


문제 설명

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.


제한사항

2 ≤ my_string 길이 ≤ 5

2 ≤ n ≤ 10

"my_string"은 영어 대소문자로 이루어져 있습니다.

입출력 예

my_string n result

"hello" 3 "hhheeellllllooo"

입출력 예 설명

입출력 예 #1

"hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.


def solution(my_string, n):

    answer = ''

    for i in my_string:

        answer += i * n

    return answer


def solution(my_string, n):
    return ''.join(i*n for i in my_string)


def solution(my_string, n):
    string = ''
    for i in range(len(my_string)):
        string = string + my_string[i]*n
    return string


def solution(my_string, n):
    return "".join([s * n for s in my_string])







최댓값 만들기 (1)

 최댓값 만들기 (1)

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.


제한사항

0 ≤ numbers의 원소 ≤ 10,000

2 ≤ numbers의 길이 ≤ 100

입출력 예

numbers result

[1, 2, 3, 4, 5] 20

[0, 31, 24, 10, 1, 9] 744

입출력 예 설명

입출력 예 #1

두 수의 곱중 최댓값은 4 * 5 = 20 입니다.

입출력 예 #1

두 수의 곱중 최댓값은 31 * 24 = 744 입니다.


def solution(numbers):

    answer = 0

    r_numbers = []

    numbers.sort()

    r_numbers = numbers[::-1]

    answer = r_numbers[0] * r_numbers[1]

    return answer


def solution(numbers):
    return sorted(numbers)[-1] * sorted(numbers)[-2]


def solution(numbers):
    numbers.sort(reverse=True)
    return numbers[0]*numbers[1]


def solution(numbers):
    numbers.sort()
    return numbers[-2] * numbers[-1]

특정 문자 제거하기

 특정 문자 제거하기

문제 설명

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.


제한사항

1 ≤ my_string의 길이 ≤ 100

letter은 길이가 1인 영문자입니다.

my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.

대문자와 소문자를 구분합니다.

입출력 예

my_string letter result

"abcdef" "f" "abcde"

"BCBdbe" "B" "Cdbe"

입출력 예 설명

입출력 예 #1

"abcdef" 에서 "f"를 제거한 "abcde"를 return합니다.

입출력 예 #2

"BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다.


def solution(my_string, letter):

    answer = ''

    for i in my_string:

        if i == letter:

            #answer = my_string.strip(i)

            answer = my_string.replace(i,'',len(my_string))

    return answer


def solution(my_string, letter):

    answer = ''

    answer = my_string.replace(letter,'',len(my_string))

    return answer

배열 자르기

 배열 자르기

문제 설명

정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

2 ≤ numbers의 길이 ≤ 30

0 ≤ numbers의 원소 ≤ 1,000

0 ≤num1 < num2 < numbers의 길이

입출력 예

numbers num1 num2 result

[1, 2, 3, 4, 5] 1 3 [2, 3, 4]

[1, 3, 5] 1 2 [3, 5]

입출력 예 설명

입출력 예 #1

[1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다.

입출력 예 #2

[1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다.


def solution(numbers, num1, num2):

    answer = []

    answer = numbers[num1:num2+1]

    return answer

옷가게 할인 받기

 옷가게 할인 받기

문제 설명

머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.

구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.


제한사항

10 ≤ price ≤ 1,000,000

price는 10원 단위로(1의 자리가 0) 주어집니다.

소수점 이하를 버린 정수를 return합니다.

입출력 예

price result

150,000 142,500

580,000 464,000

입출력 예 설명

입출력 예 #1

150,000원에서 5%를 할인한 142,500원을 return 합니다.

입출력 예 #2

580,000원에서 20%를 할인한 464,000원을 return 합니다.


def solution(price):

    answer = 0

    if price >= 100000 and price < 300000:

        answer = int(price * 0.95)

    elif price >= 300000 and price < 500000:

        answer = int(price * 0.9)

    elif price >= 500000:

        answer = int(price * 0.8)

    else:

        answer = price

    return answer


def solution(price):
    discount_rates = {500000: 0.8, 300000: 0.9, 100000: 0.95, 0: 1}
    for discount_price, discount_rate in discount_rates.items():
        if price >= discount_price:
            return int(price * discount_rate)





피자 나눠 먹기 (2)

 피자 나눠 먹기 (2)

문제 설명

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.


제한사항

1 ≤ n ≤ 100


입출력 예

n result

6 1

10 5

4 2

입출력 예 설명

입출력 예 #1

6명이 모두 같은 양을 먹기 위해 한 판을 시켜야 피자가 6조각으로 모두 한 조각씩 먹을 수 있습니다.

입출력 예 #2

10명이 모두 같은 양을 먹기 위해 최소 5판을 시켜야 피자가 30조각으로 모두 세 조각씩 먹을 수 있습니다.

입출력 예 #3

4명이 모두 같은 양을 먹기 위해 최소 2판을 시키면 피자가 12조각으로 모두 세 조각씩 먹을 수 있습니다.


def solution(n):

    answer = 0

    for i in range(max(n,6),(n*6)+1):

        if i % n == 0 and i % 6 == 0:

            answer = i/6

            break

    return answer

def solution(n):
    answer = 1
    while 6 * answer % n:
        answer += 1
    return answer


def solution(n):
    answer = []
    for a in range(1, n+1):
        if (6 * a) % n == 0:
            answer.append(a)
    return min(answer)


def solution(n):
    k=6
    while(k%n!=0):
        k+=6
    return k//6


def solution(n):
    return [n // k for k in [1,2,3,6] if n%k == 0][-1] 


import math

def solution(n):
    return (n * 6) // math.gcd(n, 6) // 6


아이스 아메리카노

 아이스 아메리카노

문제 설명

머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

0 < money ≤ 1,000,000

입출력 예

money result

5,500 [1, 0]

15,000 [2, 4000]

입출력 예 설명

입출력 예 #1

5,500원은 아이스 아메리카노 한 잔을 살 수 있고 잔돈은 0원입니다.

입출력 예 #2

15,000원은 아이스 아메리카노 두 잔을 살 수 있고 잔돈은 4,000원입니다.


def solution(money):

    answer = []

    answer.append(money//5500)

    answer.append(money%5500)

    return answer


def solution(money):
    return divmod(money, 5500)


def solution(money):

    answer = [money // 5500, money % 5500]
    return answer

2023년 1월 18일 수요일

짝수는 싫어요

 짝수는 싫어요

문제 설명

정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

1 ≤ n ≤ 100

입출력 예

n result

10 [1, 3, 5, 7, 9]

15 [1, 3, 5, 7, 9, 11, 13, 15]

입출력 예 설명

입출력 #1

10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 return합니다.

입출력 #1

15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 return합니다.


def solution(n):

    answer = []

    for i in range(n+1):

        if i%2 != 0:

            answer.append(i)

    answer.sort()

    return answer

삼각형의 완성조건 (1)

 삼각형의 완성조건 (1)

문제 설명

선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.


가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.

삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.


제한사항

sides의 원소는 자연수입니다.

sides의 길이는 3입니다.

1 ≤ sides의 원소 ≤ 1,000

입출력 예

sides result

[1, 2, 3] 2

[3, 6, 2] 2

[199, 72, 222] 1

입출력 예 설명

입출력 예 #1

가장 큰 변인 3이 나머지 두 변의 합 3과 같으므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.

입출력 예 #2

가장 큰 변인 6이 나머지 두 변의 합 5보다 크므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.

입출력 예 #3

가장 큰 변인 222가 나머지 두 변의 합 271보다 작으므로 삼각형을 완성할 수 있습니다. 따라서 1을 return합니다.


def solution(sides):

    answer = 0

    sides.sort()

    if sides[0] + sides[1] > max(sides):

        answer = 1

    else:

        answer = 2

    return answer


중앙값 구하기

 중앙값 구하기

문제 설명

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.


제한사항

array의 길이는 홀수입니다.

0 < array의 길이 < 100

-1,000 < array의 원소 < 1,000

입출력 예

array result

[1, 2, 7, 10, 11] 7

[9, -1, 0] 0

입출력 예 설명

입출력 예 #1

본문과 동일합니다.

입출력 예 #2

9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.


def solution(array):

    answer = 0

    array.sort()

    answer = array[int(len(array) / 2)]

    return answer


배열 두배 만들기

 배열 두배 만들기

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

-10,000 ≤ numbers의 원소 ≤ 10,000

1 ≤ numbers의 길이 ≤ 1,000

입출력 예

numbers result

[1, 2, 3, 4, 5] [2, 4, 6, 8, 10]

[1, 2, 100, -99, 1, 2, 3] [2, 4, 200, -198, 2, 4, 6]

입출력 예 설명

입출력 예 #1

[1, 2, 3, 4, 5]의 각 원소에 두배를 한 배열 [2, 4, 6, 8, 10]을 return합니다.

입출력 예 #2

[1, 2, 100, -99, 1, 2, 3]의 각 원소에 두배를 한 배열 [2, 4, 200, -198, 2, 4, 6]을 return합니다.


def solution(numbers):

    answer = []

    for i in numbers:

        answer.append(i * 2)

    return answer

분수의 덧셈

 분수의 덧셈

문제 설명

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

0 <numer1, denom1, numer2, denom2 < 1,000

입출력 예

numer1 denom1 numer2 denom2 result

1 2 3 4 [5, 4]

9 2 1 3 [29, 6]

입출력 예 설명

입출력 예 #1

1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 예 #2

9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.


def solution(numer1, denom1, numer2, denom2):

    answer = []

    numer, denom = 0, 0

    numer = ((numer1 * denom2) +(numer2 * denom1))

    denom = denom1 * denom2

    for i in range(min(numer,denom),0,-1):

        if numer % i == 0 and denom % i == 0:

            break

    answer.append(numer/i)

    answer.append(denom/i)

    return answer

문자열 뒤집기

 문자열 뒤집기

문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.


제한사항

1 ≤ my_string의 길이 ≤ 1,000

입출력 예

my_string return

"jaron" "noraj"

"bread" "daerb"

입출력 예 설명

입출력 예 #1

my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.

입출력 예 #2

my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.


def solution(my_string):

    answer = ''

    answer = my_string[::-1]

    return answer

피자 나눠 먹기 (3)

 피자 나눠 먹기 (3)

문제 설명

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.


제한사항

2 ≤ slice ≤ 10

1 ≤ n ≤ 100

입출력 예

slice n result

7 10 2

4 12 3

입출력 예 설명

입출력 예 #1

10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다.

입출력 예 #2

12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다.


def solution(slice, n):

    answer = 0

    if n > slice:

        if n % slice == 0:

            answer = int(n / slice)

        else:

            answer = int(n / slice) + 1

    elif n == slice:

        answer = int(n / slice)

    else:

        answer = 1

    return answer


def solution(slice, n):
    return ((n - 1) // slice) + 1

직업의 자유

① 헌법재판소는 법무사보수기준제가 법무사라는 직업의 선택 그 자체를 제한하는 것이 아니라 직업행사의 자유를 제한 하는 제도에 해당한다고 보아 그것이 직업의 자유를 침해 하는지 여부를 심사하기 위한 기준으로 비례성원칙이 아닌 자의금지원칙을 적용하였다. 

법무사보수기준제는 법무사라는 직업을 구체적으로 행사하는 방법을 제한하는 규정이다.

즉 법무사법에 의하여 법무사라는 자격을 부여받은 법무사가 자신이 수임한 업무에 대하여 회칙에 규정된 보수기준을 초과하여 위임인과 자유롭게 보수를 정할 수 없으므로 법무사보수기준제는 직업의 자유 중에서 '직업행사의 자유'를 제한하는 제도이다.

다만 직업의 자유에 대한 제한이라도 직업행사의 자유를 제한하는 것은 개성신장의 길을 처음부터 막는 직업의 선택 그 자체를 제한하는 것보다 기본권주체에 대한 침해의 진지성이 적다고 할 것이므로 그에 대한 제한은 보다 넓게 허용된다.

그러나 이 경우에도 법무사에게 직업활동에 대한 과도한 제한을 부과함으로써 직업활동을 형해화할 정도로 희생을 강요하는 것은 비례원칙(헌법 제38조 제2항)에 반하여 허용되지 않는다.

따라서 이 사건 법률조항이 헌법 제37조 제2항에서 정한 한계인 비례의 원칙을 지킨 것인지 여부를 살펴본다.

② 출석주의를 완화하여 최초의 전자등기신청 전에 한 차례 사용자등록을 하도록 한 부동산등기규칙 조항은 무자격 등 기 브로커에 의한 무차별적 등기를 가능하게 하여 법무사 인 청구인들의 직업에 대한 신뢰가 훼손됨으로써 직업선택 의 자유를 침해한다. 

이 사건의 규칙조항과 사용자등록 지침조항에 의한 사실상의 효과로서 무자격 등기 브로커에 의한 등기가 만연하게 된다거나 그로 인해 청구인들의 직업에 대한 신뢰가 훼손될 수 있다는 것은 막연한 가능성의 주장일 뿐이므로 그로 인해 청구인들의 직업선택의 자유가 침해될 가능성까지 인정할 수는 없다.

③ 법무사 아닌 자가 등기신청대행 등의 법무행위를 업으로 하는 것을 금지하고 이를 위반하는 경우 형사처벌하는 법 무사법 조항은 법무사 자격이 없는 일반 국민의 직업 선택 의 자유를 과도하게 제한하여 헌법에 위반된다. 

법무사 아닌 자가 등기신청대행 등의 법무행위를 업으로 하는 것을 금지하고 이를 위반하는 경우 형사처벌하는 법무사법 규정은 법무사 자격이 없는 일반 국민의 직업선택의 자유를 과도하게 제한하는 것이 아니다.

④ 고소고발장을 법무사만이 그 작성사무를 업으로 할 수 있는 법원과 검찰청의 업무에 관련된 서류로 규정한 것은 일반행정사의 직업 선택의 자유 등의 기본권을 침해한다. 

법무사법이 정하는 요건을 갖추어 법무사가 된 자의 경우에는 법원과 검찰청의 업무에 관련된 서류도 고소고발장의 작성업무에 종사할 만한 법률소양을 구비한 것으로 볼 수 있는 반면, 행정사법이 정하는 요건을 갖추어 일반행정사가 된 자의 경우에는 이러한 법률 소양을 갖추었다는 보장을 할 수 없다.

따라서 고소고발장의 작성을 법무사에게만 허용하고 일반행정사에 대하여 이를 하지 못하게 한 것은 국민의 법률생활의 편익과 사법제도의 건전한 발전이라는 공익의 실현에 필요,적정한 수단으로서 그 이유에 합리성이 있으므로 일반행정사의 직업 선택의 자유나 평등권 등을 침해하는 것이라고 볼 수 없다.

⑤ 헌법재판소는 일정한 경력을 가진 공무원이 법무사시험을 보지 않고도 법무사 자격을 취득할 수 있도록 하는 경력공 무원에 대한 자격부여제도를 규정하고 있던 법무사법 조항 에 대하여 경력공무원이 아닌 일반인들도 법무사시험을 보 아 합격하면 법무사가 될 수 있는 길을 열어 놓고 있고, 경 력공무원에 대한 자격부여제도가 합리성을 갖고 있어서 법 무사시험제도를 유명무실하게 하는 요소를 찾기 어렵다고 보아 법무사라는 직업을 선택하는 자유를 침해하지 않는다 고 결정한 적이 있다.

짝수 홀수 개수

 짝수 홀수 개수

문제 설명

정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

1 ≤ num_list의 길이 ≤ 100

0 ≤ num_list의 원소 ≤ 1,000

입출력 예

num_list result

[1, 2, 3, 4, 5] [2, 3]

[1, 3, 5, 7] [0, 4]

입출력 예 설명

입출력 예 #1

[1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.

입출력 예 #2

[1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.


def solution(num_list):

    answer = []

    even = 0

    odd = 0

    for i in num_list:

        if i % 2 == 0:

            even += 1

        else:

            odd += 1

    answer.append(even)

    answer.append(odd)

    return answer

배열 원소의 길이

 배열 원소의 길이

문제 설명

문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.


제한사항

1 ≤ strlist 원소의 길이 ≤ 100

strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.

입출력 예

strlist result

["We", "are", "the", "world!"] [2, 3, 3, 6]

["I", "Love", "Programmers."] [1, 4, 12]

입출력 예 설명

입출력 예 #1

["We", "are", "the", "world!"]의 각 원소의 길이인 [2, 3, 3, 6]을 return합니다.

입출력 예 #2

["I", "Love", "Programmers."]의 각 원소의 길이인 [1, 4, 12]을 return합니다.


def solution(strlist):

    answer = []

    for i in strlist:

        answer.append(len(i))

    return answer

2023년 1월 17일 화요일

머쓱이보다 키 큰 사람

 머쓱이보다 키 큰 사람

문제 설명

머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.


제한사항

1 ≤ array의 길이 ≤ 100

1 ≤ height ≤ 200

1 ≤ array의 원소 ≤ 200

입출력 예

array height result

[149, 180, 192, 170] 167 3

[180, 120, 140] 190 0

입출력 예 설명

입출력 예 #1

149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다.

입출력 예 #2

180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다.


def solution(array, height):

    return sum(1 for a in array if a > height)


중복된 숫자 개수

 중복된 숫자 개수

문제 설명

정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.


제한사항

1 ≤ array의 길이 ≤ 100

0 ≤ array의 원소 ≤ 1,000

0 ≤ n ≤ 1,000

입출력 예

array n result

[1, 1, 2, 3, 4, 5] 1 2

[0, 2, 3, 4] 1 0

입출력 예 설명

입출력 예 #1

[1, 1, 2, 3, 4, 5] 에는 1이 2개 있습니다.

입출력 예 #2

[0, 2, 3, 4] 에는 1이 0개 있습니다.


def solution(array, n):

    answer = 0

    for i in array:

        if n == i:

            answer += 1

    return answer

피자 나눠 먹기 (1)

 피자 나눠 먹기 (1)

문제 설명

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.


제한사항

1 ≤ n ≤ 100

입출력 예

n result

7 1

1 1

15 3

입출력 예 설명

입출력 예 #1

7명이 최소 한 조각씩 먹기 위해서 최소 1판이 필요합니다.

입출력 예 #2

1명은 최소 한 조각을 먹기 위해 1판이 필요합니다.

입출력 예 #3

15명이 최소 한 조각씩 먹기 위해서 최소 3판이 필요합니다.


def solution(n):
    answer = 0
    if n % 7 != 0:
        answer = int(n / 7) + 1
    else:
        answer = int(n / 7)
    return answer

배열 뒤집기

 배열 뒤집기

문제 설명

정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

1 ≤ num_list의 길이 ≤ 1,000

0 ≤ num_list의 원소 ≤ 1,000

입출력 예

num_list result

[1, 2, 3, 4, 5] [5, 4, 3, 2, 1]

[1, 1, 1, 1, 1, 2] [2, 1, 1, 1, 1, 1]

[1, 0, 1, 1, 1, 3, 5] [5, 3, 1, 1, 1, 0, 1]

입출력 예 설명

입출력 예 #1

num_list가 [1, 2, 3, 4, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 4, 3, 2, 1]을 return합니다.

입출력 예 #2

num_list가 [1, 1, 1, 1, 1, 2]이므로 순서를 거꾸로 뒤집은 배열 [2, 1, 1, 1, 1, 1]을 return합니다.

입출력 예 #3

num_list가 [1, 0, 1, 1, 1, 3, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 3, 1, 1, 1, 0, 1]을 return합니다.


def solution(num_list):

    answer = num_list[::-1]

    return answer

2023년 1월 16일 월요일

점의 위치 구하기

 점의 위치 구하기

문제 설명

사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.




x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.

x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.

x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.

x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.

x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.


제한사항

dot의 길이 = 2

dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다

-500 ≤ dot의 원소 ≤ 500

dot의 원소는 0이 아닙니다.

입출력 예

dot result

[2, 4] 1

[-7, 9] 2

입출력 예 설명

입출력 예 #1

dot이 [2, 4]로 x 좌표와 y 좌표 모두 양수이므로 제 1 사분면에 속합니다. 따라서 1을 return 합니다.

입출력 예 #2

dot이 [-7, 9]로 x 좌표가 음수, y 좌표가 양수이므로 제 2 사분면에 속합니다. 따라서 2를 return 합니다.


def solution(dot):

    answer = 0

    if dot[0] > 0 and dot[1] > 0:

        answer = 1;

    elif dot[0] < 0 and dot[1] > 0:

        answer = 2;

    elif dot[0] < 0 and dot[1] < 0:

        answer = 3;

    else:

        answer = 4;

    return answer

양꼬치

 양꼬치

문제 설명

머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.


제한사항

0 < n < 1,000

n / 10 ≤ k < 1,000

서비스로 받은 음료수는 모두 마십니다.

입출력 예

n k result

10 3 124,000

64 6 768,000

입출력 예 설명

입출력 예 #1

10인분을 시켜 서비스로 음료수를 하나 받아 총 10 * 12000 + 3 * 2000 - 1 * 2000 = 124,000원입니다.

입출력 예 #2

64인분을 시켜 서비스로 음료수를 6개 받아 총 64 * 12000 + 6 * 2000 - 6 * 2000 =768,000원입니다.


def solution(n, k):

    answer = 0

    answer = 12000 * n + 2000 * (k - int(n/10))

    return answer


배열의 평균값

 배열의 평균값

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.


제한사항

0 ≤ numbers의 원소 ≤ 1,000

1 ≤ numbers의 길이 ≤ 100

정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.

입출력 예

numbers result

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5.5

[89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] 94.0

입출력 예 설명

입출력 예 #1

numbers의 원소들의 평균 값은 5.5입니다.

입출력 예 #2

numbers의 원소들의 평균 값은 94.0입니다.


def solution(numbers):

    answer = 0

    for i in numbers:

        answer += i

    return answer/len(numbers)





짝 수의 합

 짝수의 합

문제 설명

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.


제한사항

0 < n ≤ 1000


입출력 예

n result

10 30

4 6

입출력 예 설명

입출력 예 #1


n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.

입출력 예 #2


n이 4이므로 2 + 4 = 6을 return 합니다.


def solution(n):

    answer = 0

    i = 0

    for i in range(n+1):

        if i % 2 == 0:

            answer += i

    return answer