15. 하노이 탑 ★
2024. 7. 12. 01:45
프로그래머스/Lv. 1
유명한 재귀 문제.유형 : recursion def hanoi(n, dep, by, des): if n == 1: return [[dep, des]] res = hanoi(n-1, dep, des, by)+ [[dep, des]] + hanoi(n-1, by, dep, des) return resdef solution(n): answer = hanoi(n, 1, 2, 3) return answer 하 근데 리스트 처리 때문에 애 좀 먹었다...파이썬 리스트에 더 익숙해져야 할 것 같다.
14. 바탕화면 정리
2024. 7. 12. 01:21
프로그래머스/Lv. 1
def solution(wallpaper): answer = [] walllist = [list(wallpaper[i]) for i in range(len(wallpaper))] xidx = len(walllist) yidx = len(walllist[0]) xlist = [] ylist = [] for i in range(xidx): for j in range(yidx): if walllist[i][j] == "#": xlist.append(i) ylist.append(j) answer = [min(xlist), min(ylist), max(xlist)+1, max(y..
13. 공원 산책 ★
2024. 7. 12. 01:08
프로그래머스/Lv. 1
def solution(park, routes): answer = [] park_list = [list(park[i]) for i in range(len(park))] dirc_dict = dict([['N', 0], ['S', 1], ['W', 2], ['E', 3]]) dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] W = len(park_list[0]) H = len(park_list) X = 0 Y = 0 for i in range (H): for j in range (W): if park_list[i][j] == "S": Y = i X =..
12. 추억 점수
2024. 7. 12. 00:17
프로그래머스/Lv. 1
def solution(name, yearning, photo): answer = [] yeardict = dict([[name[i], yearning[i]] for i in range(len(name))]) for ph in photo: phans = 0 for people in ph: if people in name: phans += yeardict[people] answer.append(phans) return answer 유형 : 구현. 앞선 문제와 같이 dict 자료형을 이용해 풀이했다. yeardict를 사용하여 쉽게 추억 점수를 찾을 수 있다.단 dict에서 key 값이 존재하지 않는 ..
11. 달리기 경주 ★ (dictionary 자료형 사용해 index 찾기)
2024. 7. 12. 00:12
프로그래머스/Lv. 1
유형 : 구현하하... def solution(players, callings): answer = players for call in callings: idx = players.index(call) temp = players.pop(idx) temp = players.pop(idx-1) players.insert(idx-1, call) players.insert(idx, temp) return answer 이렇게 단순히 list로 풀 경우... index, pop, insert 함수들은 O(n) 시간 복잡도이기 떄문에 시간 초과가 난다. 따라서 빠르게 key를 찾을 수 있는 dict를 사용해야 한다. def solution(..
10. 데이터 분석 ★ (이차원 배열의 정렬 key)
2024. 7. 11. 23:50
프로그래머스/Lv. 1
def solution(data, ext, val_ext, sort_by): answer = [] val = ["code", "date", "maximum", "remain"] excode = val.index(ext) sortcode = val.index(sort_by) for d in data: if d[excode] 유형 : 구현풀이 시간: 약 30분 answer에 append까지는 쉬웠는데,이차원배열 정렬에서 조금 애먹었다. 익명함수 lambda를 이용하면 쉽게 정렬할 key를 지정할 수 있다. answer.sort(key = lambda x:x[sortcode])
9. 이웃한 칸 ★
2024. 7. 11. 23:35
프로그래머스/Lv. 1
def solution(board, h, w): answer = 0 n = len(board) dh = [0, 1, -1, 0] dw = [1, 0, 0, -1] for i in range(4): h_check = h + dh[i] w_check = w + dw[i] if h_check >= 0 and h_check = 0 and w_check 유형 : 구현풀이 시간 : 10분 이 문제는 굉장히 쉬운 문제였지만, if h_check >= 0 and h_check = 0 and w_check 이 부분에서 처음에 h_check만 체크해서 틀렸다.제발 이런 부분 놓치지 말고 꼼꼼히 살펴보자. 그리고 구현 시에, 스스로 힘으로 디버깅하기. 이번..
8. 큰 수 만들기 ★★ (그리디, 스택)
2024. 7. 11. 22:39
프로그래머스/Lv. 1
출처 : https://junebee.tistory.com/43 [LG 전자] VS 연구소 SW R&D 신입사원 채용 지원 후기공고 타임라인 4/5 : 서류 지원 마감 4/7 : 서류 합격 4/9 : 코딩 테스트 4/12 : 인적성 시험 4/19 : 최종 서류전형 합격 발표 4/23 : 영어 면접 4/23 : AI 역량 검사 4/24 : 직무 역량 보고서 제출 마감일 5/4 : 1junebee.tistory.com 2022 LG SW 코테에서 비슷한 유형의 문제가 출제되었다고 한다. 유형 : 그리디 (greedy)풀이 시간: 10분 정도 (처음) -> 인터넷 참고. 1번 코드 : 시간 초과 def solution(number, k): numberlist = list(number) for i..