코딩테스트

2024.08.05 - [코딩테스트/AL] - [이것이 코딩테스트다] 그래프 탐색 알고리즘 : DFS & BFS [이것이 코딩테스트다] 그래프 탐색 알고리즘 : DFS & BFS대표적인 그래프 탐색 알고리즘에는 DFS와 BFS가 있습니다. 여기서 탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 말하며, DFS와 BFS는 코딩 테스트에서 매우 자주 등장하는 유yeonnys.tistory.com 저번 글에 이어 이번에는 DFS와 BFS 알고리즘을 활용한 예제 문제를 설명해보겠습니다! 문제) 음료수 얼려 먹기문제Q. N × M 크기의 얼음 틀이 있습니다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시됩니다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로..
문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 단순히 GROUP BY를 해서는 풀지 못하는 문제이다. GROUP BY를 하면 일부의 시간만 출력되고 모든 시간이 출력되지는 않기 때문이다. 즉, 문제에서는 0시부터 23시까지 값이 없는 데이터도 출력하라 하였는데, 데이터가 없는 시간이 존재한다! 파이썬으로 하면 쉽게 할 수 있을 것 같은데, 좀 어려웠다ㅠㅠ그래서 다른 사람의 풀이를 보고 풀어보았다.  풀이-- RECURSIVE CTEWIT..
문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문자열을 조건에 따라 처리하는 문제이다.  첫 풀이 (오답)어렵지는 않은 문제였지만, 처음에 오답이 났다ㅠdef solution(s): answer = '' # 공백을 기준으로 문자를 나눠 리스트에 저장 words = s.split(' ') for word in words: for w in range(len(word)): # 홀수번쨰 알파벳..
문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/131532 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내 풀이SELECT YEAR(s.SALES_DATE) AS YEAR , MONTH(s.SALES_DATE) AS MONTH , i.GENDER AS GENDER , COUNT(DISTINCT s.USER_ID) AS USERSFROM ONLINE_SALE s INNER JOIN USER_INFO iON s.USER_ID = i.USER_IDGROUP B..
문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 주어진 문자열을 모두 숫자로 바꾸는 문제이다. 예를 들어, "one4seveneight"과 같은 문자열이 주어질 때, 이를 1478로 반환하면 된다.  처음 풀이 (오답)def solution(s): answer = [] dict = { 'zero' : 0, 'one' : 1, 'two' : 2, 'three' : 3, ..
문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제를 보고 처음 든 생각이 그리디 알고리즘 문제라는 것이였다!그리디 알고리즘은 현재 상황에서 당장 좋은 것만 고르는 방법이다.  내 풀이최대한 많은 부서를 지원해줘야 하기 때문에, 작은 예산을 가진 팀들부터 차례대로 지원해서 최대한 많은 부서를 찾으면 된다. 즉, 주어진 d 배열을 오름차순 정렬한 뒤, 각 값을 차례대로 더해, 이 값이 전체 예산보다 작으면 answer을 더하는 식으로 진행..
대표적인 그래프 탐색 알고리즘에는 DFS와 BFS가 있습니다. 여기서 탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 말하며, DFS와 BFS는 코딩 테스트에서 매우 자주 등장하는 유형이므로 반드시 숙지해야 하는 부분입니다. 특히, 국내 대기업 공채에서는 DFS와 BFS를 적절히 활용해야 하는 문제를 많이 출제하고 있습니다.  DFS와 BFS를 보기에 앞서 반드시 알아야하는 자료구조에 대해 알아보겠습니다. 스택 자료구조먼저, 스택은 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조 입니다. 즉, 입구와 출구가 동일한 형태로 가장 대표적인 예시로는 박스 쌓기 예시를 들 수 있죠. 여러 개의 박스를 쌓아야 할 때, 가장 아래부터 박스를 쌓아올립니다. 그 후, 박스를 제거할 때는 가..
문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내 풀이 (오답)처음에는 주어진 리스트를 문자열로 바꿔서, 햄버거를 만들 수 있는 문자를 제거하려 했다. # 빵 – 야채 – 고기 - 빵 (1, 2, 3 -> 빵, 야채, 고기)def solution(ingredient): answer = 0 # 햄버거를 만드는 순서는 1 -> 2 -> 3 -> 1 ham = '1231' # 주어진 리스트를 string으로 변경..
문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  내 풀이def solution(arr): # answer의 초기값을 arr의 첫 번째 값으로 answer = [arr[0]] for i in range(len(arr)): # arr 원소와 answer의 직전 값이 같지 않으면 arr 원소 삽입 if arr[i] != answer[-1]: answer.append(arr[i]) ..
문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr '행렬'이라는 단어를 보자마자, numpy가 생각났다. 분명 문제에서 원하는 풀이는 아닐 것 같지만, numpy를 이용하면 행렬 연산을 쉽게 구할 수 있기 때문이다!  첫 번째 풀이import numpy as npdef solution(arr1, arr2): # numpy 배열로 변환 후 계산 a1 = np.array(arr1) a2 = np.array(arr2) ret..
_알파카
'코딩테스트' 카테고리의 글 목록 (2 Page)