스택, 큐 알고리즘
·
자료구조 | 알고리즘
탐색 - 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘: DFS/BFS 자료구조 - 데이터를 표현 ·관리 · 처리하기 위한 구조 스택과 큐는 자료구조의 기초 개념으로 삽입과 삭제 함수로 구성됨. 실제로 스택과 큐를 사용할 때는 삽입과 삭제 외에도 오버플로와 언더플로를 고민해야 함. 스택 - 스택은 후입선출구조이다. - 입구와 출구가 동일한 형태로 스택을 시각화 할 수 있다. stack = [] stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack) #[5,2,3,1] 큐 - 큐는 대기 줄에 비유할..
그리디 Greedy 알고리즘
·
자료구조 | 알고리즘
- 그리디 알고리즘은 단순하지만 강력한 문제 해결 방법 어떠한 문제가 있을 때 '현재 상황에서 지금 당장 좋은 것만 고르는 방법'을 의미 - 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 기준을 제시해준다. - 대부분의 문제는 그리디 알고리즘을 이용했을 때 '최적의 해'를 찾을 수 없을 가능성이 다분함 거스름돈 예제 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구하라. 단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다. n = 1260 coun..
Programmers / 1단계 / 달리기 경주 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 달리기 경주 | 프로그래머스 스쿨 (programmers.co.kr) 문제 설명 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순..
Programmers / 1단계 / 개인정보 수집 유효기간 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 개인정보 수집 유효기간 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 (테스트 실패, 정확성 65) def solution(today, terms, privacies): arr = [] dic = {} result = [] for i in terms: arr.append(i.split()) for i in arr: dic[i[0]] = int(i[1]) for i in privacies: year = int(i[0:4]) month = int(i[5:7]) + dic[..
Programmers / 1단계 / 바탕화면 정리 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 ..
20240125/ programmers/ 1단계/ python
·
코딩테스트/programmers (python)
1. 코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 스쿨 (programmers.co.kr) 코드 . 모범 답안 def solution(new_id): answer = '' # 1 new_id = new_id.lower() # 2 for c in new_id: if c.isalpha() or c.isdigit() or c in ['-', '_', '.']: answer += c # 3 while '..' in answer: answer = answer.replace('..', '.') # 4 print(answer) if answer[0] == '.': answer = answer[1:] if len(answer) > 1 else '.' if answer[-1] == '.': answer = an..
20240124/ programmers/ 1단계/ python
·
코딩테스트/programmers (python)
1. 코딩테스트 연습 - 크레인 인형뽑기 게임 | 프로그래머스 스쿨 (programmers.co.kr) 코드 . 모범답안 def solution(board, moves): basket=[] count=0 for m in moves: for b in range(len(board)): if board[b][m-1]!=0: basket.append(board[b][m-1]) board[b][m-1]=0 if len(basket)>1: if basket[-1]==basket[-2]: basket.pop(-1) basket.pop(-1) count+=2 break return count 2. 코딩테스트 연습 - 햄버거 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 3. 코딩테스트 연습 - 키패드..
20240123/ programmers/ 1단계/ python
·
코딩테스트/programmers (python)
1. 코딩테스트 연습 - 완주하지 못한 선수 | 프로그래머스 스쿨 (programmers.co.kr) 해시 문제 코드 . 모범 답안 def solution(participant, completion): result='' participant.sort() completion.sort() for i in range(len(completion)): if(participant[i]!=completion[i]): return participant[i] return participant[len(participant)-1] ■ Hash() def solution(participant, completion): answer = '' hash_dict={} # hash dictionary sumHash=0 for i in..