취업/TIL

20231102_알고리즘(자릿수의 합,소수,웹서비스구조_두번째확장)

개발자 덕구🐾 2023. 11. 4. 20:53
728x90

 

 

오늘 한 것! 

 

 

인프런 - 김태원 파이썬 알고리즘 강의 

<섹션2 - 자릿수의 합,   소수(에라토스테네스 체) >

 

인프런 - 널널한 개발자님의 면접 전에 알고 가면 좋을 것들 - 신입 JAVA 백엔드 개발자편 

<웹서비스 구조 - 확장 두 번째의 절반 수강 >

 

 


 

 

 

 

 

1. 자릿수의 합 : 

def digit_sum(x) :
    sum = 0
    for i in x : 
        sum += int(i)
    return sum 
if __name__=="__main__" :
    n = int(input())
    arr = list(map(int,input().split()))
    ans,max_value = 0 ,0 
    for i in range(n) :
        tmp=digit_sum(str(arr[i]))
        if tmp > max_value : 
            max_value = tmp
            ans = arr[i]
    print(ans)

 

string으로 바꿔서 푼다는 생각이 들었다면 쉬운 문제!!! 

그런데 나는 못했다... ㅎㅎ 

 

string으로 바꾸는 아이디어를 얻고 풀었더니 빠르게 풀수있었다. 

 

 

 

 

2. 소수(에라토스테네스 체) :

 

소수의 개수를 구하는 문제이다.

if __name__=="__main__" :
    n = int(input())
    ans = 0
    for i in range(1,n+1) :
        cnt = 0
        for j in range(1,i+1) : 
            if i%j ==0: cnt +=1 
        if cnt ==2 : ans +=1 
    print(ans)

 

 

문제를 보고 이렇게 처음에 만들었다.

하지만 N은 최대 200,000이고 제한시간은 1초이기에 실패했다. 

 

if __name__=="__main__" :
    n = int(input())
    ch = [0]*(n+1)
    cnt = 0
    for i in range(2,n+1) :
        if ch[i]==0 : 
            cnt +=1 
            for j in range(i,n+1,i) :
                ch[j] = 1 
    print(cnt)

 

 

이 코드는 내가 풀이 설명듣고 정답 코드는 보지않고 풀어보았다. 

결과는 맞았는데 

 

 

소름돋았다..

내가  푼 코드랑 변수 이름 하나 틀리지않고 동일하게 선생님이 푸셨다. 

 

내 기억 저편에 아직 이 문제를 풀었던 기억이 남아있나보다 

 

 

 

 

 


 

 





3. 웹서비스 구조 - 확장 두 번째의 절반을 들었다.






1) Java script는 Mocha script -> Live script -> Java script의 발전 과정이 있었다는 것 


2) 기존 HTTP 1.0의 단방향성를 양방향 상호작용으로 변경한것
그래서 기억의 필요성이 생겼고 백에서는 DB를 도입,
Client에서는 Cookie를 기억하였다. 


3) Server에서 전달된것을 보여주는 순서는 
     1> 구문분석 (HTML + CSS + IMG)
     2> 렌더링 
     3> JS 엔진 
 날라갈 때 HTML -> CSS -> Imag -> JS 순서로 간다. 




꾸준히 공부하자 꾸준히!!!! 

반응형