본문 바로가기

IT To do and To was

22년 11월 29일_블로그 관리를 해야겠다..,면접후기(내일..), 프로그래머스 PYTHON, SQL

728x90
반응형

화요일[12월이 코앞이다.]

 

1. 면접후기

2. 알고리즘

3. BFS에 대하여

4. SQL 못푼 거

 

1>

먼저, 생각없이 썼던 블로그....다른사람의 관점에서 볼 생각을 아예 못했다 타인이 본다는건 당연한 사실인데.. 하 타인의 관점에서 보았을 때 내가 정말 ㄸㄹㅇ로 보인다.. 어쩌지.. 

먼저 면접 후기로는 아직 부끄럽고 부족한 점이 한참남았다고 생각이 들었다.

 

지금 적고있는 이 글도 보시...ㄹ..거 같..

먼저, 개발 관련이 아닌 내용은 전체적으로 수정이 들어가야할 거같다.

 

면접관님한테 봐도 되냐는 말을 여러차례 물어보게 하면 안된ㄷ... 아 다시 생각해도 부끄럽다.

 

그리고 사람인에 포폴을 기재하였는데 왜 안보였을까.. 그리고 Python을 2개나 썼다니.. 수정을 했다.

하.. 아니 이것도 보실 거아니야..어쩌지 하요..........

 

...일단.. 학....관련 내용은 다음에 기재하도록..

 

하 유튜브도 너무 쪽팔리다  도서관에서 지금 내가 제일 쪽팔린 사람인 거같다..

 

물론 보라고 올려놓은 거긴하지만..  수정이 필요하다..

 

그리고 package에 대해 제대로 답변을 못했다. 바보같이..답변을 못했다..

 

먼저 python pakage 라이브러리처럼 같은 폴더의 다른 파일을 from import 해서 가지고 오는 거이더라..

저 알고 있어여.. 빼액..

 

2>

약수의 합

def solution(n):
    answer = 0
    result = []
    for i in range(1,n+1):
        for j in range(1,n+1):
            if i * j == n:
                result.extend([i,j])
    result = set(list(result))
    for k in result:
        answer += k
    return answer

다른사람이 한 풀이

def sumDivisor(num):
    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])

i가 num과 나눴을 때 0일 때 = 약수일 때 

//2 +1을 함으로써 효율을 2배로 올림

 

평균구하기

def solution(arr):
    return sum([i for i in arr])/len(arr)

다른사람이 한 풀이

# 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
# 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
import statistics


def average(list):
    # 함수를 완성해서 매개변수 list의 평균값을 return하도록 만들어 보세요.
    return statistics.mean(list)

# 아래는 테스트로 출력해 보기 위한 코드입니다.
list = [5,3,4] 
print("평균값 : {}".format(average(list)));

이래서 똑똑한 것들은...이 아니라

통계모듈을 쓴 예시

statistics

출처 : https://docs.python.org/ko/dev/library/statistics.html

세균증식

def solution(n, t):
    answer = n*2
    for i in range(1,t):
        answer += answer
    return answer

다른사람이 한 풀이

def solution(n, t):
    return n << t

n << t = n x 2^t

 

자릿수 더하기

def solution(n):
    answer = 0
    result = list(str(n))

    for i in result:
        a = int(i)
        answer += a

    return answer

다른사람이 한 풀이

# 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
# 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
def sum_digit(number):
    if number < 10:
        return number;
    return (number % 10) + sum_digit(number // 10) 

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(sum_digit(123)));

재귀함수 사용

10보다 작을 경우만  == 1의 자리일 경우에 재귀함수 종료

나머지 더하고 재귀함수 호출하여 다시 판별

 

가위바위보

def solution(rsp):
    answer = ''
    a = list(rsp)
    for i in a:
        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)

저기여 왜케 똑똑해요?

d의 해당하는 인덱스 값이 나오면 딕셔너리의 충당하는 값이 나옴

.join으로 출력 자료형을 맞춤

 

대문자와 소문자

def solution(my_string):
    answer = ''
    a = list(my_string)
    for i in a:
        if i == i.upper():
            answer += i.lower()
        else:
            answer += i.upper()
    return answer

다른사람이 한 풀이

def solution(my_string):
    return my_string.swapcase()

https://www.w3big.com/ko/python/att-string-swapcase.html#gsc.tab=0

 

파이썬 swapcase () 메소드

파이썬 swapcase () 메소드 파이썬 문자열 기술 파이썬 swapcase () 메소드는 대문자와 소문자의 문자열을 변환하는 데 사용됩니다. 문법 swapcase () 메서드 구문 : str.swapcase(); 매개 변수 반환 값 변환이

www.w3big.com

w3school이 아닌 w3big이라는 사이트인데 굉장히 잘 되어있는 듯하다

 

3>

BFS

인접한 노드가 2개 이상인 경우에는 해당 노드들 중 번호가 낮은 노드부터 처리

 

부모노드로부터 시작하고,  번호가 낮은 노드를 삽입하고 방문처리를 한다. 

빼고 탐색을 같이하는데, 탐색은 이전 순서의 주변을 탐색

 

이전 이론은 이해가 되는데 graph에서 while문으로 탐색하는게 이해가 안된다.

2차원 그래프가 어떤 식으로 BFS가 되는 것인지 2차원 그래프가 노드로 그림이 그려지지가 않는다..ㅠ 또르르

그래도 어제보단 이해가 됐다.

 

 

4>

즐겨찾기가 많은 식당 출력

SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM(
SELECT FOOD_TYPE AS F1,REST_ID AS F2, REST_NAME AS F3, MAX(FAVORITES) AS F4
FROM REST_INFO
GROUP BY F1) TAB1 
INNER JOIN (SELECT * FROM REST_INFO) TAB2
ON TAB1.F1 = TAB2.FOOD_TYPE AND TAB1.F4 = TAB2.FAVORITES
ORDER BY FOOD_TYPE DESC

남이한 거

SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM
(SELECT FOOD_TYPE AS FOOD_TYPE2 , MAX(FAVORITES) AS FAVORITES2 FROM REST_INFO
GROUP BY FOOD_TYPE) TABLE1
INNER JOIN (SELECT * FROM REST_INFO) TABLE2
ON TABLE1.FOOD_TYPE2 = TABLE2.FOOD_TYPE AND TABLE1.FAVORITES2 = TABLE2.FAVORITES
ORDER BY FOOD_TYPE DESC

 

GROUB BY 는 aggregate function(집계 함수) 이랑 함께 쓰여야한다. 그러므로 함께 쓰이지 않을 경우 group by 가 어떤 row를 가지고 올지 모른다.

 

n월 (진척도)

알고리즘 공부 5%

SQL 80.5%

정보처리기사 0%

토스 1%

 

// yesterday wished to today list.

. 면접 후기_면접관분들이 너무 좋아보였다 다 괜찮으신 분들이었다. 너무 아쉽다.

혹시 보실 수도 있으니까 쪽지..를 남겨보려한다.

너무 좋은 분들이 많아, 오랜만에 즐겁에 웃음도 짓고 통하는 느낌이 들었습니다. 생각이 바뀌시면 혹은 그게 아니라도 연락주세요. ✔️

. 도서관가기_✔️

. 알고리즘_✔️

. BFS 이해하기_🥲

. SQL 못푼 거 하나라도 풀기_✔️

 

tomorrow wish list

. https://www.w3big.com/ko/python/default.html#gsc.tab=0 보기

. SQL 못푼 거 하나라도 풀기(1/4)

. 이것이

. 하나 넣기

. 월계획 쓰기

728x90
반응형