Spicy Tuna Sushi
본문 바로가기

프로그래머스18

[프로그래머스] 영어 끝말잇기(C++) https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 나온 대로 구현하면 되는 문제다. 중복 단어인지 확인을 위해, 나오는 단어들은 save vector에 저장해둔다. 또한, 끝말잇기가 가능한지 따지기 위해 save vector의 마지막 문자와, 제시할 단어의 첫 문자를 비교한다. #include #include #include using namespace std; vector solution(int n, vector words) { vect.. 2022. 8. 19.
[프로그래머스] 두 큐 합 같게 만들기(C++) https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 큐1와 큐2를 하나의 큐로 합쳐서 사용한다. 테케 1을 예시로 들자면, 원래 각각의 시작점을 a,b로 두어 접근할 수 있도록 하는 것이다. sum 비교에 따라 빠져나오거나, sum과 a,b를 조정해주면 된다. b가 큐 크기를 벗어난다면, 더 이상 접근 불가능한 것이므로 -1으로 지정하고 빠져나온다. #include #include #include using namespace std; int so.. 2022. 8. 19.
[프로그래머스] 예상 대진표(C++) https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정말 간단하지만, 처음에는 일부 테스트케이스에서 실패했던 문제. 처음에는 두 참가자의 번호 차가 1이면 반복문을 빠져나오도록 했다. 그러나 간단히 (4,2,3) 같은 경우만 보더라도 (1,2) (3,4) 경기후 (2,3)이 만나야 하지만, 처음부터 차가 1이므로 한 번 만에 빠져나온다. 그러므로 둘이 만났을 때도 서로 이겼다 가정하여 번호가 같을 때까지 반복문을 돌린다. using namespac.. 2022. 8. 18.
[프로그래머스] 수식 최대화(C++) https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선 주어진 string을 num과 cal(연산자) vector에 각각 나누어 저장한다. num={100,200,300,500,20} cal={-,*,-,+} 방문이 필요한 연산자에 대해서는 visit 배열을 0으로 변경하여, 나중에 방문할 때 1로 변경하는 용도로 사용한다. 그 후 func를 돌리는데, 적용 가능한 연산자, 즉 우선순위로 먼저 적용할 연산자를 선정하여 계산한다. 처음에는 *부터 .. 2022. 8. 18.
[프로그래머스] 피로도(C++) https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dfs 문제다. 방문했는지 체크하는 check 배열로 아직 방문하지 않았으면서 최소 필요도를 충족하는 던전에 대해 dfs를 호출한다. #include #include using namespace std; int answer = -1; void dfs(int k, vector dungeons, vectorcheck,int cnt) { for(int i=0;i 2022. 8. 17.
[프로그래머스] 다음 큰 숫자(C++) https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr count 함수는 주어진 수를 2진수로 변환했을 때의 1의 개수를 반환한다. 주어진 n의 1의 개수를 저장해놓고, n+1부터 계속 check해보며 같은 수가 나올 경우 빠져나오면 된다. #include #include using namespace std; int count(int n) { //나머지 1일 떄마다 cnt++ int cnt=0; while(n>0) { if(n%2==1) cnt++; .. 2022. 8. 17.
[프로그래머스] 2 x n 타일링(C++) https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음엔 재귀로 시도했던 문제. 함수 호출 시마다 가로로 두 개씩 눕혀 쓰는 fun(n-2), 세로로 하나 쓰는 fun(n-1)를 계속 호출했다. 그렇게 하니 작은 수를 다루는 테케는 통과했지만, 큰 수에서는 시간 초과가 났다. 다시 규칙을 찾아보니 피보나치인 것을 발견하여, 변수 a,b,c를 갖고 풀었다. #include #include using namespace std; int solution.. 2022. 8. 17.