16일차 코드 복습

Chaejung·2022년 1월 4일
0

알고리즘_Python

목록 보기
4/22

푼 문제

12일차까지 푼 문제들

1000 1001 1008 1085 1152 1330 1427 1546 1712 2163 2292 2476 2530 2557 2562 2588 2675 2739 2750 2751 2753 2754 2884 2908 2914 3009 3040 4101 4153 4344 5355 5622 5717 7287 7891 8393 9498 9506 9610 10039 10103 10171 10214 10250 10430 10718 10757 10809 10817 10818 10869 10886 10950 10952 10998 11022 11557 11650 14681 15552 15596

16일차까지 푼 문제들

1000 1001 1008 1085 1110 1152 1157 1193 1330 1427 1546 1712 1789 2163 2292 2476 2530 2557 2558 2562 2588 2675 2739 2750 2751 2753 2754 2884 2908 2914 3009 3040 4101 4153 4344 5063 5086 5355 5622 5717 7287 7567 7891 8393 8958 9498 9506 9610 10039 10103 10171 10214 10250 10430 10699 10718 10757 10809 10817 10818 10869 10886 10950 10952 10988 10998 11022 11549 11557 11650 11654 14681 15552 15596 17388 22938 23037

12일차~16일차동안 푼 문제들

1110 1157 1193 1789 2558 5063 5086 7567 8958 10699 10988 11549 11654 17388 22938 23037

새롭게 알게 된 문법

우수 코드와 비교하기

1789번

나의 코드

sumLimitList = []
sum = 0
for i in range(1, 92684):
    sum += i
    sumLimitList.append(sum)
num = int(input())
for i in range(0, len(sumLimitList)-1):
    if sumLimitList[i] <= num < sumLimitList[i+1]:
        result = i + 1
print(result)

우수 코드

print(int(((int(input())*8+1)**.5-1)/2))
n=int(input())
print(int((2*n+.25)**.5-.5))

처음 보는 문법이다!
아직 뭐라고 구글링해야지 나오는지는 모르겠지만
메모라도 해놓고 나중에 찾아보는 걸로!
()**.
이런 느낌인 것 같은데
조금 시간을 두고 공부해야할 것 같다.

5063번


도대체 무슨 말이야...
컴공 개그가 이런 건가...?

나의 코드

testCaseNum = int(input())
adOrNot = []
for i in range(0, testCaseNum):
    r, e, c = map(int, input().split())
    if e-c > r:
        adOrNot.append("advertise")
    elif e-c < r:
        adOrNot.append("do not advertise")
    else:
        adOrNot.append("does not matter")
for i in adOrNot:
    print(i)

우수 코드

import sys
testcase = int(sys.stdin.readline())
for _ in range(testcase):
	r, e, c = map(int, sys.stdin.readline().split())
	e -= c
	if r < e:print('advertise')
	if r == e:print('does not matter')
	if r > e:print('do not advertise')

논리는 비슷하지만
뭔가 사각형인 형태가 마음에 들어서 메모!

건드렸는데 못 푼 문제

1002번

testCaseNum = int(input())

for i in range(0, testCaseNum):
    x1, y1, r1, x2, y2, r2 = map(int, input().split())
    r3=((x1-x2)**2+(y1-y2)**2)**(1/2)
    if r1==r2:
        if x1==x2 and y1==y2:
            result = -1
        else:
            if r3<r1+r2:
                result = 2
            elif r3==r1+r2:
                result = 1
            else:
                result = 0
    else:
        if x1==x2 and y1 == y2:
            result=0
        else:
            if r3<r1+r2:
                result=2
            elif r3<max(r1, r2):
                result = 2
            elif r3==r1+r2:
                result = 1
            elif r3==max(r1, r2)-min(r1, r2):
                result = 1
            else:
                result = 0
    print(result)

1436번

endMovieList = ['666']
endMovie = '666'
def endMovieAdd(movieName, movieList):
    if movieName not in movieList:
        movieList.append(movieName)
for i in range(1, 10):
    endMovie='666'
    endMovie=str(i)+endMovie
    endMovieAdd(endMovie, endMovieList)
for i in range(1, 10):
    endMovie='666'
    endMovie=endMovie+str(i)
    endMovieAdd(endMovie, endMovieList)

endMovieList.remove('666')
print(endMovieList)

endMovieList2=[]

for j in endMovieList:
    for i in range(1, 10):
        endMovie=str(i)+j
        endMovieAdd(endMovie, endMovieList2)
    for i in range(1, 10):
        endMovie=j+str(i)
        endMovieAdd(endMovie, endMovieList2)

endMovieList3 = []

for j in endMovie:
    for i in range(10, 100):
        endMovie=str(i)+j
        endMovieAdd(endMovie, endMovieList2)
    for i in range(0, 10):
        for k in range(0, 10):
            endMovie=j+str(i)+str(j)
            endMovieAdd(endMovie, endMovieList2)
print(endMovieList2)
endMovieList.extend(endMovieList2)
endMovieList.append('666')

intEndMovieList = [int(x) for x in endMovieList]
intEndMovieList.sort()
print(intEndMovieList)

2108번

num = int(input())
numList = []
def arithmetic(list):
    mean=sum(list)/len(list)
    return round(mean)
def median(list):
    list.sort()
    return list[len(list)//2]
def mode(list):
    list.sort()
    if len(list)==1:
        return list[0]
    else:
        maxList = abs(max(list))
        minList = abs(min(list))
        modeCountList = [0]*(minList+1+maxList)
        for i in list:
            modeCountList[i+minList] += 1
        if modeCountList.count(max(modeCountList)) != 1:
            modeNum = 0
            mostNum = min(list)-1
            for i in modeCountList:
                mostNum += 1
                if i == max(modeCountList):
                    modeNum += 1
                if modeNum == 2:
                    return mostNum
        else: 
            print(modeCountList.index(max(modeCountList)))
            return modeCountList.index(max(modeCountList))
        
def rangeNum(list):
    return max(list)-min(list)

for i in range(0, num):
    numList.append(int(input()))

print(arithmetic(numList), median(numList), mode(numList), rangeNum(numList), sep='\n')

24039번

def isPrimeNum(num):
    orNot = 0
    if num == 1:
        return True
    else:
        for i in range(1, num+1):
            if num%i==0:
                orNot += 1
    if orNot >2:
        return False
    else:
        return True
primeNumList=[]
primeNumMultiList=[]
for i in range(1, 150):
    if isPrimeNum(i)==True:
        primeNumList.append(i)
for j in range(0, len(primeNumList)-1):
    primeNumMultiList.append(primeNumList[j]*primeNumList[j+1])
num = int(input())
if num == 1:
    print(2)
for k in range(0, len(primeNumMultiList)-1):
    if primeNumMultiList[k]<=num<primeNumMultiList[k+1]:
        print(primeNumMultiList[k+1])

다음 일차 전까지 한 번 더 생각해보고 다듬어보는 걸로!

profile
프론트엔드 기술 학습 및 공유를 활발하게 하기 위해 노력합니다.

0개의 댓글

관련 채용 정보