기록하지 않았다면 잃어버릴 시간들
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
블로그 내 검색

기록하지 않았다면 잃어버릴 시간들

새로운 것을 배우는게 즐거운 개발자입니다.

  • 알고리즘/프로그래머스

    Programers 카드 뭉치 / C++, Java

    2023. 2. 19.

    by. 내이름은 킹햄찌

    https://school.programmers.co.kr/learn/courses/30/lessons/159994?language=cpp 

     

    프로그래머스

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

    programmers.co.kr

    아이디어

    goal을 순회하며 cards1, cards2에 매칭되는 단어가 있는지 확인하고 존재한다면 각각의 cards를 나타내는 포지션 변수를 증가시키고 그렇지 않다면 지나가는 과정을 반복한다. 반복과정의 시작과 종료지점의 cards를 나타내는 포지션 변수의 합을 비교하여 증가하지 않았다면 카트가 존재하지 않는 것으로 판단한다.

     

    C++

    #include <string>
    #include <vector>
    
    using namespace std;
    
    string solution(vector<string> cards1, vector<string> cards2, vector<string> goal) {
        string answer = "Yes";
        int p1 = 0, p2 =0;
        for(auto iter : goal){
            int total = p1+p2;        
            if(iter == cards1[p1])
                p1++;
            else if(iter == cards2[p2])
                p2++;
            if(total == p1+p2){
                answer = "No";
                break;
            }
        }
        return answer;
    }

     

    Java 

    class Solution {
        public String solution(String[] cards1, String[] cards2, String[] goal) {
            String answer = "Yes";
            int pos1 = 0, pos2 = 0;
            for (String s : goal) {
                int total = pos1+pos2;
                if(cards1.length > pos1 && s.equals(cards1[pos1]))
                    pos1++;
                else if(cards2.length > pos2 && s.equals(cards2[pos2]))
                    pos2++;
                if(total == pos1+pos2)
                    return "No";            
    
            }
            return answer;
        }
    }

    '알고리즘 > 프로그래머스' 카테고리의 다른 글

    Programers 대충 만든 자판/ C++, JAVA  (0) 2023.03.04
    Programers 연속 펄스 부분 수열의 합/ C++  (0) 2023.03.04
    Programers 미로 탈출/ C++  (0) 2023.02.19
    2023 카카오 블라인드 코딩테스트 4번 표현 가능한 이진트리 / C++  (0) 2023.02.18
    2023 카카오 블라인드 코딩테스트 6번 미로 탈출 명령어 / C++  (0) 2023.02.18

    댓글

    관련글

    • Programers 대충 만든 자판/ C++, JAVA 2023.03.04
    • Programers 연속 펄스 부분 수열의 합/ C++ 2023.03.04
    • Programers 미로 탈출/ C++ 2023.02.19
    • 2023 카카오 블라인드 코딩테스트 4번 표현 가능한 이진트리 / C++ 2023.02.18
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
내이름은 킹햄찌

티스토리툴바