본문 바로가기
WIL&TIL/TIL

20230329 TIL 또 나만 모르는 VSCODE 단축키, 프로그래머스 문제풀이

by 코드뭉치 2023. 3. 29.

개인과제 해설 강의

 

몰라도 되는 것

 class Character():

 class Character: 

 괄호를 써도 되고 안 써도 된다. 두개 똑같음(상속할땐 괄호써야함)

 

메소드 작성 요령

 함수는 지정한 역할 하나만 해주는게 좋다.

 따라서 기능이 여러개이면 그냥 메소드를 나누는게 좋다.

 (IF문으로 쓰면 나중에 유지보수가 힘들다.)

 

 또한 validation은 함수 들어가기 전에 끝내놓는 것이 좋다.

 (조건문으로 함수안에 막 넣지말고, 변수에 값을 할당해서 함수에는 깔끔하게 들어가는 것을 권장함.)

 

vscode 라이브 쉐어 기능 사용하면 좋다.


vscode 기능

 

change all occurrences  (ctrl + f2)  

같은 텍스트 모두 선택 (의도치 않은것까지 바뀔 수 있다.)

Ctrl shift L

변수명 한번에 쫙 바꾸기(같은 기능만)


vscode Multi-cursor and selection 다중 커서와 셀렉션 단축키

 

Alt+Click Insert cursor

Ctrl+Alt+ ↑ / ↓ Insert cursor above / below

Ctrl+U Undo last cursor operation

Shift+Alt+I Insert cursor at end of each line selected

Ctrl+L Select current line

Ctrl+Shift+L Select all occurrences of current selection

Ctrl+F2 Select all occurrences of current word

Shift+Alt+→ Expand selection

Shift+Alt+← Shrink selection

Shift+Alt + (drag mouse) Column (box) selection

Ctrl+Shift+Alt + (arrow key) Column (box) selection

Ctrl+Shift+Alt +PgUp/PgDn Column (box) selection page up/down

 


프로그래머스 0단계 수문장1 - 최빈값구하기

문제자체는 어렵지 않은데 참고 코드가 이해가 잘 안되서 각각 풀어서 작성해봤다.

array = [1, 1, 1, 2, 4, 2, 2, 3, 4, 4, 4, 4]

answer = 0
check = {}
for ar in array: # 여기까지 {숫자1 :빈도, 숫자2:빈도 ...}의 딕셔너리 생성
    if ar not in check:
        check[ar] = 1
    else:
        check[ar] += 1
        

sorted_check = sorted(check.items(), reverse=True, key=lambda item: item[1])  # sorted_check에 아까 만든 check 딕셔너리를 sorted해서 할당함.

"""
check.items() => 위에서 만든 check 딕셔너리의 key:value 둘 다 가져옴.

reverse=True => 역순으로 정렬함(=내림차순)

key = lambda item: item[1] => 정렬 기준을 key(※딕셔너리 key아님)로 할건데, 이 key는 각각의 item[1] 즉, 빈도수를 기준으로 함

정리하면 sorted_check에 check의 key:value값을 다 가져와서 / 빈도인 item[1]을 기준으로 / 내림차순 정렬

sorted_check = {제일 많이 나온 수:빈도, 그다음:빈도, 그그다음:빈도, ...  }의 형태로 생성됨
"""
if len(sorted_check) > 1:  # sorted_check의 길이가 1이면 그 값이 최빈값이므로 바로 answer에 할당
                           # 길이가 1보다 크다면 최빈값이 여러 개일 가능성이 있으므로 if문으로 걸러내기

    if sorted_check[0][1] != sorted_check[1][1]:  # sorted_check[0][1]은 최빈값의 빈도수
                                                  # sorted_check[1][1]는 그 다음 수의 빈도수
        answer = sorted_check[0][0]
    else:                                         # 둘이 같으면 -1을, 다르면 0번째 인덱스의 키 값을 answer에 할당
        answer = -1
else:
    answer = sorted_check[0][0]



# print(check)
# check = {1: 3, 2: 3, 4: 5, 3: 1}


# print(sorted_check)
# sorted_check = [(4, 5), (1, 3), (2, 3), (3, 1)]

* key=lambda item: item[1] 에서 key라는 부분은 sorted에서 정렬에 사용하는 인자로 딕셔너리의 key와는 관련이 없다!!

 

댓글