[프로그래머스] 2단계 - 영어 끝말잇기
2024. 1. 9. 19:25
Algorithm Study
문제 설명 n명의 사람이 영어 끝말잇기를 하고 있을때, 이전에 등장했던 단어를 말하거나 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말하지 않았을때, 가장 먼저 탈락하는 사람의 번호와 그 사람이 몇 번째 차례에 탈락하는지 return https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 영어 단어가 들어있는 vector를 순회하면서 1. 앞에서 말한 단어가 또 나왔는지 검사 2. 앞에서 말한 단어의 마지막 말로 시작하는지 검사 총..
[프로그래머스] 2단계 - 짝지어 제거하기
2023. 12. 28. 20:44
Algorithm Study
문제 설명 문자열에서 같은 알파벳이 2개 붙어있는 짝을 제거한 뒤, 앞 뒤로 문자열을 이어붙이는 과정을 반복하면서 문자열을 모두 제거가 가능한지 여부를 return https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 먼저 string의 erase 함수를 사용해서 문제를 풀었었다 하지만 답은 맞지만, 효율성 테스트에서 전부 실패를 했기에 좀 더 빠른 방법을 찾아서 stack을 사용하게 되었다 문자열을 순회하며 stack이 비었거나, 해당..
[프로그래머스] 2단계 - 피보나치 수
2023. 12. 28. 20:27
Algorithm Study
문제 설명 n번째 피보나치 수를 1234567로 나눈 나머지를 return https://school.programmers.co.kr/learn/courses/30/lessons/12945?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 해당 문제는 n이 47일 때부터 int 자료형의 범위를 벗어나 버린다 따라서 자료형의 범위를 넘지 않게 vector에 피보나치 수열을 저장해야한다 문제에서 피보나치 수를 1234567로 나눈 나머지를 return 하라 했으니, 여기서 힌트를 얻어서 값을 저장해주면 된다 피보나치 수열에서 ..
[프로그래머스] 2단계 - 다음 큰 숫자
2023. 12. 28. 20:12
Algorithm Study
문제 설명 자연수 n이 주어졌을 때, n보다 크고 2진수로 변환했을때 1의 갯수가 같은 자연수를 return https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 자연수 n보다 1 큰 숫자부터 시작하여 2진수로 변환했을 때, 1의 갯수가 같은 것을 찾는다 while문을 돌면서 숫자를 2로 나누며, 나머지가 1인 갯수를 세면 2진수로 변환했을 때의 1의 갯수를 구할 수 있다 소스 코드 #include #include using namesp..
[프로그래머스] 2단계 - 숫자의 표현
2023. 12. 27. 18:35
Algorithm Study
문제 설명 자연수 n을 연속한 자연수들로 표현하는 방법의 수를 return https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 이중 for문을 통해 문제를 풀 수 있다 바깥의 for문은 총 n번을 반복하는 것이고, 안쪽의 for문은 i를 초기값으로 가지기에 n - i 번을 반복하는 것이다 즉, 만일 n이 15, i가 12라면 3번 반복하는 것이다 연속하는 자연수를 찾기 위해서 이렇게 해두었다 i가 1이고, n이 15라면 1, 2, 3...
[프로그래머스] 2단계 - 올바른 괄호
2023. 12. 27. 17:03
Algorithm Study
문제 설명 '(' 또는 ')'로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호인지 아닌지 return https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 스택을 사용하여 풀 수 있는 문제이다 문자열을 돌면서 문자가 '('이면 스택에 push한다 ')'이면 pop하는데, 우선 스택이 비어있는지 아닌지 검사한다 스택이 비어있으면 pop을 할 수 없으므로 바로 break 후 false를 return한다 스택이 비어있지 않지만..
[프로그래머스] 2단계 - 최솟값 만들기
2023. 12. 27. 16:49
Algorithm Study
문제 설명 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱할때, 누적값이 최소가 되게하여 return https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 누적값이 최소가 되게하는 방법은 배열 A에서의 작은 값과 배열 B에서의 큰 값을 곱해주며 더하면 된다 따라서 배열 A는 sort을 사용하여 오름차순으로 정렬하고, 배열 B는 sort를 사용하여 내림차순으로 정렬한 뒤, 인덱스끼리 곱해주면 된다 소스 코드 #include #in..
[프로그래머스] 2단계 - JadenCase 문자열 만들기
2023. 12. 27. 16:45
Algorithm Study
문제 설명 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 JadenCase 문자열을 return https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 if문의 조건을 통해 문제를 풀 수 있다 단, 조건을 세세히 줘야한다 우선, 문자열의 맨 앞이거나, 앞에 빈칸이 나왔을 경우와 그렇지 않은 경우로 나눈다 그렇지 않은 경우에는 문자가 대문자인 경우만 소문자로 변환하고, 아니면 그냥 문자열을 더한다 문자열의 맨 앞이거나, 앞에..
[프로그래머스] 1단계 - 가장 가까운 같은 글자
2023. 12. 26. 14:46
Algorithm Study
문제 설명 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자의 위치를 return https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 이중 for문을 사용하면 간단하게 풀 수 있다 밖의 for문은 문자열의 문자 하나하나씩 반복하는 for문이고, 안의 for문은 처음부터 해당 문자가 있는 곳까지 반복하는 for문이다 if문을 통해 같은 문자가 등장하면 해당 문자들의 인덱스 ..
[프로그래머스] 2단계 - 최댓값과 최솟값
2023. 12. 22. 21:24
Algorithm Study
문제 설명 문자열 s에는 공백으로 구분된 숫자들이 있고, s에 다타나는 숫자 중 최소값과 최대값을 찾아 "(최소값) (최대값)" 형태의 문자열을 return https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 문자열을 공백을 기준으로 split하고, stoi를 통해 int형 벡터로 받아준다 이후 벡터를 오름차순으로 정렬하고, 최솟값과 최대값을 하나의 문자열로 생성한다 문자열을 공백을 기준으로 split할때 사용하는 것이 string s..