프로그래머스(C++) - 영어 끝말잇기

2025. 10. 12. 08:52·C++ 프로그래머스/기타 문제

●문제

 

●입출력

 

 

문제풀이

n명의 사람이 있고 words에 들어있는 문자순서대로 n명의 사람이 번갈아가며 끝말잇기를 했을때

몇번째 사람이 몇번째 단어에서 똑같은단어를 이야기하는지 [번호, 차례]를 리턴

 

푼방법

set으로 map에 첫번쨰 단어를 넣고

for문으로 words문장을 순회하면서

첫번째단어부터 .size()만큼 순회

이전 단어 prev와 현재단어 current단어를 비교 prev.back() != current.front 이거나 이미 맵에 있을때 즉 count될때

즉 위반했을때 번호와 차례를 return

번호는 (i % n) + 1 

차례는 (i / n) + 1

이렇게구하면 번호는 1, 2, 3, 4 이런식으로 나오고

차례는 1,1,1 2,2,2, 3,3,3 이런식으로 나옴

#include <string>
#include <vector>
#include <set>

using namespace std;

vector<int> solution(int n, vector<string> words) 
{
    //map에 이미 있다면 return
    //for문으로 1번부터 .size까지 순회
    //구해야하는값은 사람번호, 차례
    //사람번호는 (i % n) + 1 // 1, 2, 3, 4, 5
    //사람차례는 (i / n) + 1 // 1,1,1, 2,2,2 3,3,3
    
    set<string>used_Words;
    used_Words.insert(words[0]);
    for (int i = 1; i < words.size(); i++)
    {
        //만약 map에 이미 있거나 뒤 != 앞 이 아닐때
        string current_Word = words[i];
        string prev_Word = words[i - 1];
        //이전의 back != 현재의 front아닐때 || 이미 map에 있을떄
        if (prev_Word.back() != current_Word.front() || used_Words.count(current_Word))
        {
            int person_Num = (i % n) + 1; // 1, 2, ,3 ,4...
            int person_Round = (i / n) + 1; // 1,1,1, 2,2,2, 3,3,3...
            return { person_Num, person_Round };
        }
        used_Words.insert(current_Word);
    }
    return { 0, 0 };
}

 

레벨 : 2

점수 : 1

'C++ 프로그래머스 > 기타 문제' 카테고리의 다른 글

프로그래머스(C++) - 행렬의 곱셈  (0) 2025.10.20
프로그래머스(C++) - 예상 대진표  (0) 2025.10.12
프로그래머스(C++) - 귤 고르기  (0) 2025.10.10
프로그래머스(C++) - 멀리뛰기  (0) 2025.10.10
프로그래머스(C++) - 다음 큰 숫자  (0) 2025.08.02
'C++ 프로그래머스/기타 문제' 카테고리의 다른 글
  • 프로그래머스(C++) - 행렬의 곱셈
  • 프로그래머스(C++) - 예상 대진표
  • 프로그래머스(C++) - 귤 고르기
  • 프로그래머스(C++) - 멀리뛰기
lucodev
lucodev
언리얼 포폴개발 일기
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (212) N
      • Unreal 프로젝트 다이어리 (109) N
        • 첫번째 프로젝트 (73)
        • 두번째 프로젝트 (36) N
      • Unreal 팁 (8)
      • Unreal 디버깅 (8)
      • C++ 프로그래머스 (52)
        • Stack,Queue (7)
        • Hash (4)
        • Heap (2)
        • Sort (5)
        • Exhaustive search (5)
        • Greedy (2)
        • BFS , DFS (7)
        • Graph (2)
        • Dynamic Programming (1)
        • C++ Math (2)
        • 기타 문제 (14)
      • C++ 백준 (4)
      • C++ 팁 (1)
      • 개인 코테 & 스타디 <비공개> (29)
        • 코드 개인보관함 (9)
        • 코딩테스트+@ (11)
        • 알고리즘 스타디 (6)
        • 알고리즘 스타디 과제 (3)
        • 비공개 (0)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 태그

    언리얼
    unreal 시퀀스
    언리얼 ui
    unreal 모션매칭
    unreal inventory
    언리얼 모션매칭
    언리얼 컷씬
    언리얼 시퀀스
    unreal
    unreal 인벤토리
    언리얼 motionmatching
    언리얼 parkour
    언리얼 인벤토리
    unreal 파쿠르
    언리얼 비헤이비어트리
    언리얼 프로그래스바
    언리얼 파쿠르
    언리얼 behaviortree
    Unreal Parkour
    언리얼 behavior tree
  • hELLO· Designed By정상우.v4.10.3
lucodev
프로그래머스(C++) - 영어 끝말잇기
상단으로

티스토리툴바