🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
[Programmers] 카드 뭉치(Lv.1) - Java
https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞
berryiscute.tistory.com
import java.util.*;
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
int one = 0;
int two = 0;
for(int i = 0 ; i < goal.length ; i++) {
String target = goal[i];
if(one < cards1.length && cards1[one].equals(target)) {
one++;
} else if(two < cards2.length && cards2[two].equals(target)) {
two++;
} else {
return "No";
}
}
return "Yes";
}
}
✅ 해결 아이디어
- 투 포인터 알고리즘^^
🔺 다른 풀이들
- 풀이1) 투 포인터 사용
[프로그래머스] 카드뭉치 (JAVA)
https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞
usedto-wonderwhy.tistory.com
투 포인터 알고리즘을 사용하셨다고..
- 풀이2) while문 사용
프로그래머스 | 카드 뭉치 (Java)
🔑 해결 cards1과 cards2에 적힌 단어들로 goal를 만들 수 있다면 "Yes"를, 만들 수 없다면 "No"를 return하는 solution 함수를 작성하는 문제이다.
velog.io
위랑 거의 같은 코드인데 위는 for문 사용하셨다면, 여기는 while문을 사용하셨다. (큰 차이 없음)
근데 설명을 잘 해주셔서...ㅎㅎ
💬 느낀 점
사실 Map이랑 배열 생성하고 난리 부르스로 길게 작성해봤다가
TC 여러 개 시간 초과 떠서 그냥 다른 분 코드 보고 작성했다...
다른 분들 풀이를 보니 이게 어제 배운 투 포인터 알고리즘이구나,,,, 싶다.
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] 덧칠하기 (0) | 2023.04.04 |
---|---|
[프로그래머스/Lv. 1] 크레인 인형뽑기 게임 (0) | 2023.04.04 |
[프로그래머스/Lv. 1] 과일 장수 (0) | 2023.04.04 |
[프로그래머스/Lv. 1] 기사단원의 무기 (0) | 2023.04.04 |
[프로그래머스/Lv. 1] 둘만의 암호 (0) | 2023.04.04 |