PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요. spell에서 주는 알파벳으로 dic에 포함되는 단어를 찾으면 되는 문제인데, 모두 한번씩은 꼭 사용해야하고, 모두 사용되어야한다는 것이다. p, o, s인 경우 sod eocd... 등에서는 찾을 수 없다. if(dic[i].contains(spell[j])) { count++; System.out.println(dic[i] + "와 일치하는 문자 " + spell[j]..
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. >> 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요. 도형을 다루는 문제이다. 삼각형이 완성되는 조건은 가장 긴 변의 길이가 다른 두 변의 길이의 합보다 작아야하는 것이다. Try 1) int answer = 0; // 오름차순 정렬 Arrays.sort(sides); System.out.println("-----조건 1번-----"); // 1) 가장 긴 변이 주어진 두 변 중 있을 경우 // 그 값보다 같거나 작고 다른 한 변보다 크게 범위..
다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다. 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요. 배열은 n * n 배열 안전지대 문제는 다른 기업들의 코테문제와 유사한 느낌의 2차원 배열을 다루는 문제로 필수적으로 알아야할 부분들이 많을 것 같았다. int answer = 0; for(int i = 0; i < board.length; i++) { for(int j = 0; j < board[i].length; j++..
문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요. '숨어있는 숫자의 덧셈 (1)'과의 차이점은 1. 연속된 수를 하나의 숫자로 간주한다는 점과 (이 경우 1, 2, 34)가 검출될 경우 (1)에서의 답 10이 아닌 37이 리턴된다. 2. 문자열에 자연수가 없는 경우에는 0을 반환한다는 것이다. '숨어있는 숫자의 덧셈 (1)' 의 코드를 조금 수정하여 if(Character)를 판단하는 부분인 public static int solution(String my_string) { int answer = 0; for(int i = 0; i < my_str..
한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다. 다항식을 계산할때 수학에서처럼 x값을 쉽게 구할 수 없을 것 같았다. 계수들을 x와 구분하여 추출 후 동류항끼리 더해야했다. Try 1) String answer = ""; String pn = polynomial; String x_data = ""; int x_result = 0; String num = "A"; // // 다항식의 연산자 개수 파악하기 // int plus_cn..
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요. make_max와 유사한 문제지만, 예외사항이 하나 더 추가됨으로써 판단하기 어려울 것 같았다. Try 1) int max = 0; int max2 = 0; for(int i = 0; i < numbers.length; i++){ if(max < Math.abs(numbers[i])) { max = numbers[i]; } } for(int i = 0; i < numbers.length; i++) { if(max2 < Math.abs(numbers[i]) && max != numbers[i]) { max2 = numbers[i]; } } ..
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요. 어떤 수의 제곱인지를 판별하는 문제이다. 어떤 수를 제곱하여 결과값을 구하는 것이 아닌 반대의 경우이기때문에 1부터 증가시키며 나눠질때까지 반복해야하는 것이 아닐까 생각도 했다. while(s_num < n) { s_num = i * i; // ... i++; } 처럼 n보다 작을때가지 반복하여 주어진 제곱 값이 나올 수 있도록 i를 하나씩 증가시키며 값을 찾았다. s_num == n 이게되면 정확한 제곱수이므로 break로 빠져나가고, answer를 반환한다. public class Is_square_num { publ..
프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요. 피자 문제와 유사한 문제이다. 서비스라는 개념이 있어서 특정 조건마다 증가값이 달라져야한다. Try 1) final int SERVICE = 10; final int GET_COUPON = 1; int chicken = 1081; int service_chicken = 0; int coupon = 0; int answer = 0; coupon = chicken / GET_COUPON;..