728x90 Algorithm/프로그래머스 알고리즘26 [프로그래머스] 이진변환 반복 문제 분석 따로 크게 분석할게 없었다. 단 중요한건 제목부터 이진변환 반복이라는것. 즉 나는 2진변환로직 구현 -> 재귀로 반복 해주었다. 재귀로 계속 반복하다가 더이상 변환할게 없을때 중단 하였다. 구현 #include #include #include using namespace std; void solve(int size, int &delCnt, int &cnvCnt ); vector solution(string s) { vector answer; vector binVector; int delCnt = 0; int cnvCnt = 1; for(int i = 0 ; i < s.size(); i++){ if( s.at(i) == '0'){ delCnt++; } else { binVector.push_ba.. 2021. 6. 14. [프로그래머스] 스킬트리 문제 분석 특별히 분석할게 없었다. 그냥 CBD 라면 스킬트리에서 해당 인덱스를 따로 저장한다. skill_trees의 BACDE 에서 C, B, D 각각의 index를 찾는다. C = 2, B = 0, D = 3 인덱스 순으로 보면 B(0), C(2), D(3) 순으로 스킬을 익혔기 때문에 BACDE 를 위반한다. 불가능함. 위처럼 1차검사 2차 예외 상황 선행스킬 하나만 찍었을때 3차 선행스킬 존재 하지 않을때 각각의 예외상황을 처리해 주었다. 코드 #include #include #include using namespace std; bool checkOrderFunction(string aSkill, string aSkillTree); int solution(string skill, vector s.. 2021. 6. 12. [프로그래머스] 오픈채팅방 문제 분석 문제가 길다. 천천히 읽어 나갈 필요가 있다. 읽어보니 채팅방의 입장퇴장 그리고 ID 변경에 대한 Log를 기록하는 문제이다. 문제핵심 1. 닉네임은 변경가능하다. 중복도 허용한다. 2. 최종 출력은 변경된 닉네임으로 보여줘야 한다. 3. 입력은 다음과같다. 커맨드 유저아이디 닉네임 문제는 3단계로 나누어 풀수 있을 것같다. 1. 입력 받은값 Parsing 감사하게도 입력값은 space 로 나뉘어져 있다 간단하게 stringstream 으로 나누자 2. 유저 아이디에 따른 닉네임변경(닉네임은 중복허용) 키값으로 UserId를 정하고 닉네임을 value로 정할수 있겠다. map 을 사용하면 되겠다. 3. 최종 변경된 ID로 메세지 출력해주기 위에 저장 된 map을 양식에 맞게 출력해준다. 구현 .. 2021. 5. 23. [프로그래머스] 방문 길이 문제 분석 그래프로 풀면 될것 같다. 인접행렬로 풀어 봤다. 그래프를 단순히 2차 배열로 만들었다 간선이 없으면 처음 가본길이므로 값을 증가한다. 간선이 있다면 이미 지나간 길이므로 값을 증가하지 않는다., 이렇게 보면 쉽지만... 구현한 코드가 좀 복잡 했다 아직 실력이 많이 부족한것 같다. 완전탐색 + 그래프 인접행렬 이렇게 풀면 될것 같다. 구현 #include #include using namespace std; int nodeVal[2000][2000]; int graphMap[2000][2000]; int substitution(int x, int y){ return nodeVal[x][y]; } int solution(string dirs) { int answer = 0; int cnt = .. 2021. 5. 15. 이전 1 2 3 4 5 6 7 다음 728x90 반응형