
[프로그래머스] 2단계 - 모음 사전
2024. 3. 22. 19:42
Algorithm Study
문제 설명 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U' 만을 사용하여 만들 수 있는 길이 5 이하의 모든 단어가 수록되어 있을 때, 주어지는 단어가 사전에서 몇 번째 단어인지 return 문제 풀이법 재귀를 통해서 문제를 풀 수 있다 "AAAAE"는 6번째 단어인데 이유는 "A" -> "AA" -> "AAA" -> "AAAA" -> "AAAAA" -> "AAAAE" 이기 때문이다 문자열 뒤에 계속해서 글자를 붙여주며, 재귀를 돌면 해당 사전을 만들 수 있다 재귀의 탈출 조건은 글자 길이가 5 이상이거나, target 문자열과 현재 문자열이 같을 때이다 target 문자열과 현재 문자열이 같으면 answer을 저장해야한다 탈출 조건에 부합하지 않으면 몇 번째 단어인지 cnt + 1 해주고..

[프로그래머스] 3단계 - 단어 변환
2024. 3. 22. 18:55
Algorithm Study
문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 변환할 수 있는지 return https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 dfs로 풀 수 있는 문제이다 한 번에 한 개의 알파벳만 바꿀 수 있다는 문구가 핵심이다 우선 dfs를 돌기 전에 words에서 target 단어가 있는지 검사 해주었다 없으면 변환할 수 없으므로 바로 0을 return 해주었다..

[프로그래머스] 3단계 - 등굣길
2024. 3. 22. 18:45
카테고리 없음
문제 설명 격자의 크기 m,n 과 물이 잠긴 지역의 좌표를 담은 배열이 주어질 때, 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단 경로의 개수를 return https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 dp 문제이므로 점화식을 도출해야한다 오른쪽과 아래쪽으로만 움직일 수 있으므로 점화식은 dp[i][j] = dp[i - 1][j] + dp[i][j - 1]이다 먼저 dp배열을 다 0으로 초기화한 후, 물 웅덩이의..

[프로그래머스] 3단계 - 야근 지수
2024. 3. 19. 18:59
Algorithm Study
문제 설명 1시간 동안 작업량 1만큼을 처리할 수 있을때, 야근 피로도를 계산하여 최소화 한 값을 return https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 야근 피로도는 남은 일의 작업량을 제곱하여 더한 값이다 문제에서 원하는 것은 야근 피로도를 최소화 한 값이므로 최대한 큰 수를 작게 만들어서 제곱 시에 값이 커지는 것을 막는게 핵심이다 따라서 우선순위 큐를 사용하여, 항상 값을 내림차순으로 정렬하도록 한다 작업량이 다 끝날 ..

[프로그래머스] 2단계 - 연속 부분 수열 합의 개수
2024. 3. 19. 18:24
Algorithm Study
문제 설명 원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수 return https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 queue를 사용하면 쉽게 풀 수 있다 만일 예시고 [7, 9, 1, 1, 4]라는 수가 들어오면 - 길이가 1인 연속 부분 수열의 합 [7, 9, 1, 1, 4] - 길이가 2인 연속 부분 수열의 합 [16, 10, 2, 5, 11] ... 이런식으로 연속 부분 수열의 합이 나오는데 잘 보면 que..

[프로그래머스] 2단계 - 오픈채팅방
2024. 3. 13. 19:37
Algorithm Study
문제 설명 채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열이 주어질 때, 모든 기록이 처리된 후 최종적으로 방을 개설한 사람이 보게 되는 메세지를 return https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 문제에서 닉네임이 주어질때 그 옆에 uid가 함께 주어지는데 이를 활용하면 된다 주어진 배열 record를 먼저 순회하기 전에 pair이라는 벡터와 m이라는 맵을 하나 생성했는데, pair에는 first에는..

[프로그래머스] 2단계 - 뒤에 있는 큰 수 찾기
2024. 3. 11. 19:25
Algorithm Study
문제 설명 배열의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이에 있는 수를 뒷 큰수라고 할 때, 모든 원소들에 대한 뒷 큰수를 담을 배열을 return https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 stack을 사용하면 쉽게 풀 수 있다 주어진 배열의 맨 끝에서부터 탐색하는데, 만일 stack이 비어있다면 뒷 큰수가 없다는 뜻이므로 answer에 -1을 담고 stack에 자신을 담는다 비어있지 ..

[프로그래머스] 2단계 - 더 맵게
2024. 3. 11. 19:08
Algorithm Study
문제 설명 모든 음식이 스코빌 지수를 K 이상이 될 때 까지 반복해서 섞을 때, 섞어야 하는 최소 횟수를 return https://school.programmers.co.kr/learn/courses/30/lessons/42626# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 스코빌 지수가 항상 정렬이 되어야 했기 때문에 priority_queue를 사용하여 정렬 상태를 유지해 주었다 큐에 들어있는 값이 1개가 될 때 까지 음식을 섞어주면 되는데, 이때 맨 앞의 값이 K보다 크면 다른 음식들의 스코빌 지수도 모두 K보다 크다는 것이 보장이..

[42 Seoul] CPP Module 02
2024. 3. 11. 17:00
42 Seoul
개념 복사 생성자 한 객체의 내용을 다른 객체로 복사하여 생성된 생성자 복사 생성자가 정의되어 있지 않으면, 디폴트 복사 생성자가 존재하는데 이 디폴트 복사 생성자는 얕은 복사를 기반으로 동작 얕은 복사(Shallow Copy) 객체를 복사할 때, 해당 객체만 복사 복사된 객체의 인스턴스 변수는 원본 객체의 인스턴수 변수와 같은 메모리 주소값을 참조하게 됨 -> 복사한 대상이 바뀌면은 복사된 객체도 바뀌는 문제 발생 깊은 복사(Deep Copy) 객체를 복사할 때 인스턴스를 변수 전부를 복사 새롭게 동적할당을 하고, 원본의 데이터를 복사하게 됨 대입 연산자 오버로딩 연산자를 오버로딩 (재정의) 한 것 대입 연산자도 마찬가지로 디폴트 대입 연산자는 얕은 복사를 하게됨 따라서 깊은 복사를 원하면 대입 연산자..

[42Seoul] CPP Module 01
2024. 3. 9. 21:50
42 Seoul
개념 스택(stack)영역과 힙(heap) 영역 스택 영역 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸 힙 영역 사용자가 직접 관리할 수 있는 영역 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨 c++에서는 new()로 동적 할당하고, delete()로 해제 reference C++에서 특정 변수의 실제 이름 대신 사용할 수 있는 것 (별명과 비슷) 선언된 참조자는 대상 변수와 같은 메모리 위치를 참조하게 됨 int value = 42; int &ref = value; 포인터와 유사하지만 다른점은 참조자는 한번 선언되면 다른 변수를 참조할 수 없음 참조자는 주로 함수 매개 변수로 많이 사용되는데, 매개 변수로 사용 하면 복..