[프로그래머스][Level2] 영어 끝말잇기 c++

2022. 10. 21. 13:11·🍞 Algorithm/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12981 
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이 과정

조건에 맞지 않는 인덱스를 찾는 것이 우선이다.

1. 이전에 등장했던 단어는 사용할 수 없습니다.
   map에 영어 단어를 넣고 다음 영어 단어를 넣었을 때, 카운트가 하나라도 됐다면  
   이전에 나왔던 것이라는 뜻이므로 틀린 인덱스를 찾을 수 있다.
2. 앞 사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.

이 방식으로 인덱스를 찾았으면 [번호, 차례] 형태로 return하면 된다.  
만약 idx가 0이라면 탈락자가 생기지 않았다는 뜻이므로 [0, 0]을 return 한다.

 

#include <string>
#include <vector>
#include <map>

using namespace std;

vector<int> solution(int n, vector<string> words) {
    vector<int> answer;

    int idx = 0;
    map<string, int> m; // 영어 단어, 횟수
    for(int i = 0; i < words.size() - 1; i++){
        m[words[i]]++;
        if(m[words[i + 1]] > 0){ // 첫번째 조건
            idx = i + 1;
            break;
        }
        if(words[i][words[i].size() - 1] != words[i + 1][0]){ // 두번째 조건
            idx = i + 1;
            break;
        }
    }
    if(idx == 0) {
        answer.push_back(0);
        answer.push_back(0);
    }
    else{
        answer.push_back(idx % n + 1);
        answer.push_back(idx / n + 1);
    }
    return answer;
}
저작자표시 (새창열림)

'🍞 Algorithm > Programmers' 카테고리의 다른 글

[프로그래머스][Level2] 이진 변환 반복하기 c++  (0) 2022.10.21
[프로그래머스][Level2] 오픈채팅방 c++  (0) 2022.10.21
[프로그래머스][Level2] 수식 최대화 c++  (0) 2022.10.21
[프로그래머스][Level2] 배달 c++  (0) 2022.10.21
[프로그래머스][Level2] [3차] n진수 게임 c++  (0) 2022.10.21
'🍞 Algorithm/Programmers' 카테고리의 다른 글
  • [프로그래머스][Level2] 이진 변환 반복하기 c++
  • [프로그래머스][Level2] 오픈채팅방 c++
  • [프로그래머스][Level2] 수식 최대화 c++
  • [프로그래머스][Level2] 배달 c++
박빵이
박빵이
2025년에도 갓생살기
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (337)
      • 🍞 FrontEnd (97)
        • HTML+CSS (4)
        • JavaScript (17)
        • TypeScript (4)
        • React (52)
        • Next.js (2)
        • Android (15)
      • 🍞 BackEnd (24)
        • Java (15)
        • Node.js (6)
        • Spring (1)
      • 🍞 Cloud & Infra (0)
        • AWS SAA (0)
        • Microsoft Azure (0)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 데이터 통신 (6)
        • 네트워크 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • 길벗 블로깅 멘토 (18)
        • IT연합동아리 피로그래밍 (3)
        • 개발 컨퍼런스 (2)
  • 블로그 메뉴

    • Admin
  • 링크

    • GitHub
  • 인기 글

  • 태그

    umc
    C++
    Java
    길벗 블로깅 멘토링
    level1
    위상정렬
    백준
    알고리즘
    안드로이드
    Front
    react
    코딩자율학습
    Android
    코틀린
    JavaScript
    유니온파인드
    level2
    map
    길벗 블로깅 멘토
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박빵이
[프로그래머스][Level2] 영어 끝말잇기 c++
상단으로

티스토리툴바