알고리즘 문제풀이/프로그래머스
-
[프로그래머스/Level 1] 크기가 작은 부분 문자알고리즘 문제풀이/프로그래머스 2024. 1. 13. 14:17
https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 부분 문자열의 길이가 18자리가 될 수 있으므로 int의 범위가 넘어간다. 따라서 long long 타입으로 변환해야 하는 것이 중요 #include #include #include #include using namespace std; typedef long long ll; int solution(string t, string p) { int answer = 0; int tLen = t.size..
-
[프로그래머스/Level 1] 카드 뭉치알고리즘 문제풀이/프로그래머스 2024. 1. 9. 12:02
https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 여러 해결 방법이 있겠지만, 큐를 활용하여 문제를 해결했다. cards 입력 값들을 각각의 큐에 넣어준 후, goal을 순회하며 각 큐에서 front 값을 가져와 비교를 시작한다. 조건에 의하면 주어진 cards 입력 값들의 순서를 바꿀 수 없기 때문에, pop을 해서 가져온 front 값이 반드시 같아야만 한다. 만약 같지 않다면, 순서가 일치하지 않으므로 단어를 만들 수 없는 케이스가 된다...
-
[프로그래머스/Level 1] 가장 많이 받은 선물알고리즘 문제풀이/프로그래머스 2024. 1. 7. 20:06
https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출 '선물을 주고 받은 기록이 없는 경우'가 "A -> B 1개", "B -> A 0개"도 포함된다고 이해 하였는데, 말 그대로 서로 0개 주고 받은 경우를 의미한다. (조건을 잘 못 이해해서 시간 많이 잡아먹음) 조건을 꼼꼼하게 잘 읽어보면 어렵지 않게 구현할 수 있을듯 #include #include #include #include #include using namespace std..
-
[프로그래머스/Level 1] 대충 만든 자판알고리즘 문제풀이/프로그래머스 2024. 1. 4. 16:18
https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr keymap의 각 알파벳 별 순서를 map에 저장한 후, targets의 문자열을 만들 수 있는 최소 클릭 수를 구하였다. 이때 주어진 keymap에서 특정 문자열을 만들 수 없는 경우 -1을 리턴해야 하는데, 다음 케이스를 조심해야 한다. keymap : ["BC"] targets : ["AC", "BC"] return : [-1, 3] => "BC"는 만들 수 있으므로 -1로 리턴하면 안된다..
-
[프로그래머스/Level 1] 바탕화면 정리알고리즘 문제풀이/프로그래머스 2024. 1. 2. 22:56
https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최소한의 이동거리를 갖는 한 번의 드래그로 모든 파일을 선택하기 위해선 규칙이 존재하는데, 각 파일의 x좌표와 y좌표의 최소값, 최대값을 찾은 후 시작점은 최소값들의 좌표로 구성하고, 끝점은 최대값들의 좌표로 구성한 후 각각 +1을 해주면 된다. #include #include #include #include using namespace std; vector solution(vector wall..
-
[프로그래머스/Level 1] 공원 산책알고리즘 문제풀이/프로그래머스 2024. 1. 2. 22:49
https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 크기 만큼 특정 방향을 이동할 때, 크기가 벗어나면 여태까지 이동했던 좌표 정보는 업데이트 되면 안되고 초기화 되어야 한다. 따라서 flag 처리를 통해 이를 구분하였다. #include #include #include #include #include using namespace std; // N: 0, S: 1, W: 2, E: 3 int dx[4] = {-1, 1, 0, 0}; int..
-
[프로그래머스/Level 1] 달리기 경주알고리즘 문제풀이/프로그래머스 2023. 12. 27. 16:36
https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 입력 값의 크기 범위가 크기 때문에 O(N^2)으로는 해결 불가하다고 판단하여, 선수 이름에 따른 순서를 저장하는 map, 선수 순서에 따른 이름을 저장하는 map을 각각 선언하여 O(N)으로 해결 #include #include #include #include #include using namespace std; vector solution(vector players, vector callin..
-
[프로그래머스/Level 1] 개인정보 수집 유효기간알고리즘 문제풀이/프로그래머스 2023. 4. 10. 20:56
https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출 오늘 날짜와 각 약관의 유효기간을 일(day) 단위로 변환 후 비교하면 간단하게 해결 가능하다. 주의할 점은 유효기간 변환 후 -1을 해줘야한다. #include #include #include #include #include #include using namespace std; map m; vector solution(string today, vector terms, vector ..