본문 바로가기

알고리즘 문제 풀이

(64)
프로그래머스[LEVEL1]: 햄버거 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 ingredient 를 순회하면서 1231 인지 판단해야 되는데 이때 incgredient의 길이가 최대 1000.000이기 때문에 최대한 시간복잡도를 최적화 해야 한다. 간단히 살펴보면 계속 ingredient의 요소를 차근차근 stack에 쌓아두다가 뒤에서 4번째까지 요소를 문자열로 변환 후에 1231 인지 판단하고 만약 1231이라면 햄버거이기 때문에 acc 를 1 증가시키며 동..
프로그래머스[LEVEL1]: 옹알이 2 https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 정규 표현식을 활용해 풀었다 [aye, ye, woo, ma]는 머쓱이가 발음할 수 있는 발음이지만 [ayaaya, yeye, woowoo, mama] 연속되는 발음은 머쓱이가 발음할 수 없기 때문에 해당 케이스를 replace할 때 x 문자로 ㄱ데ㅣㅁㅊㄷgownsek. 발음이 가능할 때만 카운트를 올려줘야 하기 때문에 x문자가 존재하지 않은데 [aya, ye, woo, ma]로 re..
프로그래머스[LEVEL1] - 귤고르기 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 그리디 알고리즘 문제이다 tangerine을 reduce로 순회하면서 각 사이즈의 귤의 개수를 배열로 구한다. 그리고 tangerineCountArr을 구해서 이를 내림차순으로 정렬한다 . tangerineCountArr을 순회하면서 sum에다 각 count를 누적시키는데 동시에 result도 증가시킨다 만약 이때 sum이 k보다 크거나 같아지면 result를 반환한다
백준1541 - 잃어버린 괄호 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제 풀이 그리디 알고리즘 문제이다 솔직히 말하면 문제를 보고 바로 방법을 생각하지는 못했다 풀이 방법은 쉽게 말하면 +연산자를 먼저 하고 첫번째 값을 기준으로 나머지 값들을 전부 빼주면 된다.
프로그래머스[LEVEL2] - n^2 배열 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1 단순 2차원 배열 생성 (실패) - 단순하게 2차원 배열을 만들어서 1차원화 한 다음 left ~ right의 숫자를 배열에 담아서 출력 방법이 있지만 이 문제는 n은 무려 10 ^ 7 까지 주어지기 때문에 효율성에서 통과하지 못한다. 2. 좌표 전환 - 좌표 (x, y) 에 들어갈 숫자는 max(x, y) + 1이다 - left- right 범위의 숫자를 좌표로 변환만 해주면 된다.
프로그래머스[LEVEL1] - 음양 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 EASY 했다 !!
프로그래머스[LEVEL1] - 폰켓몬 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 nums의 길이를 2로 나눈 값과 set으로 중복을 제거한 nums의 길이를 비교하여 답을 구할 수 있었다.
백준 2108 - 통계학 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제 풀이 사실 알고리즘을 떠올리고 문제를 푸는게 어렵지는 않았다. 다만 최빈값을 구하는 곳에서 메모리 초과나 시간 초과 혹은 이상하게 66%쯤에서 틀리는 경우가 생겨서 골치가 많이 아팠다. 메모리 초과는 numbers 배열 하나와 obj객체 하나만 생성하는 것으로 해결했다. 메모리 초과를 해결하고 나니까 시간초과도 자연스럽게 해결이 됐다.