백준 6550번 (Silver 5)
import java.util.Scanner;
public class problem350 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 다음 입력이 없을때 까지 반복
while (in.hasNextLine()) {
// 공백을 기준으로 배열로 나눔
String[] inputString = in.nextLine().split(" ");
int index = 0;
// 문자 비교
for (int i = 0; i < inputString[1].length(); i++) {
if (inputString[0].charAt(index) ==
inputString[1].charAt(i)) {
index++;
}
// index가 inputString의 길이랑 같을때 break
if (index == inputString[0].length()) {
break;
}
}
// 같다는것은 문자가 다 포함한다는것
if (index == inputString[0].length()) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
}
백준 10815번 (Silver 5)
import java.util.Arrays;
import java.util.Scanner;
public class problem354 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
int[] sizeArr = new int[size];
for (int i = 0; i < size; i++) {
sizeArr[i] = in.nextInt();
}
// 이진 탐색을 위한 정렬
// -10 2 3 6 10
Arrays.sort(sizeArr);
int m = in.nextInt(); // 비교할 카드 갯수
int[] target = new int[m];
for (int i = 0; i < m; i++) {
target[i] = in.nextInt();
}
for (int i = 0; i < m; i++) {
boolean isSearch = search(sizeArr, target[i]);
if(isSearch){
System.out.print("1" + " ");
}else{
System.out.print("0" + " ");
}
}
}
// 이진 탐색 메소드
private static boolean search(int[] cards, int target) {
int start = 0;
int end = cards.length - 1;
while (start <= end) {
int mid = (start + end) / 2;
// cards 배열에 target 번호가 있는경우
if (cards[mid] == target) {
return true;
} else if (cards[mid] < target) {
// 내림차순으로 정렬했음으로,
// 더 큰값이라는것은 오른쪽에 위치할수 있다는것임으로. + 1 해주었다.
start = mid + 1;
} else {
end = mid - 1;
}
}
return false;
}
}
프로그래머스 카카오
public class problem355 {
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i = 0; i < n; i++){
// or 비트 연산자
answer[i] = Integer.toBinaryString(arr1[i] | arr2[i]);
answer[i] = answer[i].replaceAll("1", "#");
answer[i] = answer[i].replaceAll("0", " ");
// n은 6인데 5자리의 비트가 나오는경우가 있다.
// 2번예제 11010(22) | 1110(14) 인경우 5자리로 나온다.
// n 보다 비트가 적게 나오는경우 해당 칸 만큼 공백을 찍어줍니다.
while(answer[i].length() < n){
answer[i] = " " + answer[i];
}
}
return answer;
}
}
}