취업/TIL

20231101_TIL(알고리즘-대표값,정다면체_웹서비스구조 첫번째)

개발자 덕구🐾 2023. 11. 1. 22:54
728x90

 

 

 

 

요즘 장원영 이뻐서...

 

 

 

 

오늘도 역시 알고리즘 문제를 풀었다. 

 

섹션2 - 4.대표값 문제이다. 

 

 

import sys
if __name__=="__main__" :
    n = int(input())
    arr = list(map(int,input().split()))
    avg = int(sum(arr)/n+0.5)
    similar = sys.maxsize
    score, num = 0,0
    for idx, x in enumerate(arr) :
        tmp = abs(x-avg)
        if tmp < similar : # 차이가 적다면 
            similar = tmp 
            score = x
            num = idx +1 
        elif tmp == similar and score < x :  # 차이가 같지만 점수가 크다면
            score = x
            num = idx +1 
    print(avg,num)

 

 

평균을 첫째자리에서 반올림해서 구하는 문제였다.

근데 그 방법이 신박했다. 

0.5를 더해서  int()를 통해 소수점 뒤자리를 잘라주는 방식이었다. 

 

만약 0.5이상이라면 0.5를 더했을때 자연스럽게 +1으로 갔을것이고

0.5 미만이라면 더하더라도 최대 0.9까지 갔을것이므로 int()를 통해 잘라주면 깔끔히 반올림한수를 구할 수 있다. 

 

그리고 눈여겨봐야할 코드는 

if tmp < similar : 이다. 

여기에 <=이 아닌 이유는 같은 점수를 가진 학생일 경우 학생번호가 빠른 학생을 원하기때문이다. 

<=이 되면 같은 점수일경우 나중에 나오는 학생의 점수와 idx가 저장이 된다. 

 

 

 


 

 

 

섹션2 - 5. 정다면체 문제이다. 

if __name__=="__main__" :
    n,m = map(int,input().split())
    cnt = [0]*(n+m+2)
    for i in range(1,n+1) :
        for j in range(1,m+1) :
            cnt[i+j] +=1
    max_v = max(cnt)
    for idx,val in enumerate(cnt) :
        if val == max_v : print(idx,end=' ')

 

 0으로 채워진 리스트를 만드는 법 -> [0] * (원하는 길이)

 

 

print를 할 때 줄바꿈을 하지않고 옆으로 출력하도록 하는 법

print(  <출력하고자 하는 것> ,end=' ')를 한다!! 

 

 

 

 

 

 


 

 

 

그리고 이번에 강의를 하나 샀다.

 

널널한 개발자 님의 강의! 

https://www.inflearn.com/course/%EB%A9%B4%EC%A0%91-%EC%8B%A0%EC%9E%85-java-%EB%B0%B1%EC%95%A4%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9E%90/dashboard

 

면접 전에 알고 가면 좋을 것들 - 신입 Java 백엔드 개발자편 - 인프런 | 강의

신입 Spring Java 백엔드 개발자로 취업을 원하는 사람, 특히 면접을 앞둔 사람이 미리 알고 가면 좋을 내용들에 대해 종합적으로 정리한 강의 입니다., Java 백엔드 면접이 얼마 남지 않았다면? 💥 [

www.inflearn.com

 

 

면접 전에 알고 가면 좋을 것들 - 신입 Java 백엔드 개발자편

이름은 이렇다 

 

인프런에서 20% 할인받아서 5만 .. 얼마에 구매했다. 

그래도 일하니까 강의비를 크게 신경안쓰고 구매할수있다는 것에 참 감사하다. 

 

 

 

 

강의를 통해 배운것들 정리 

 

 

1. 웹서비스 구조 - 기본구조 

URL와 URI 

 

URL : uniform resource Locator     -> 위치 

URI : uniform resource Identifier    -> 식별자

 

URI 가 URL을 포함한다. 

https://what-am-i.tistory.com/453

위와 같은 주소가 있다고 하자

그러면 ~~tistory.com 까지는 해당 주소의 위치를 알려주므로 URL이라고 한다.

뒤에 있는 453은 해당 글을 식별하게 해준다. 그러므로 위 링크 전부는 URI라고 할수있다.

 

이처럼 URI안에 URL이  포함되어있는 것이다. 

 

 

 

 

2. 웹서비스 구조 - 확장 첫번째 

해당 강의에서는 http 1.0 ~ 1.1 을 설명해주셨다. 

 

아주 옛날 인터넷이 만들어졌을무렵... 

티모시 버너스 리 씨께서 만드셨다고 한다. 

 

client 가 server 에게 TCP/IP를 이용해 연결하여 HTTP (하이퍼텍스트 전송 프로토콜)을 통해 GET method를

이용해 요청한다. (Request) 

그러면 server는 HTML + CSS + Image가 섞인 복합문서 - 하이퍼텍스트를 response한다.

 

여기의 한계는 server에서 응답을 해줄뿐이라는 단방향성이라는 것과 문서(resource)가 static 하다는 것이다. 

 

 

 

 

반응형