Algorithms/프로그래머스

Algorithms/프로그래머스

[프로그래머스] '치킨 쿠폰' - Java

프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 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;..

Algorithms/프로그래머스

[프로그래머스] '문자열 계산하기' - Java

my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요. 문자열로된 수식이 주어지면 각 토큰별로 분석하여 실제 결과값을 출력하는 문제이다. 수식의 인자가 두 자리 수 일때는 토큰으로 인식하여 한자리수 연산밖에 하지 못하는 문제 발생할 수 있어 리스트나 배열로 바꾸어 처리해볼 수 있었다. Try 1) String my_string = "11 - 13"; int answer = 0; my_string = my_string.replaceAll(" " , ""); String cc = ""; char c; String[] temp = new String[2]; int k = 0; f..

Algorithms/프로그래머스

[프로그래머스] '한 번만 등장한 문자' - Java

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. 두 번 이상 등장하는 문자를 제외한 문자를 "사전 순"으로 정렬해야하는 문제이다. 알파벳을 찾는 알고리즘이나, 특정 문자가 얼마나 등장하는지 최빈값을 찾는 문제에서 // 알파벳 개수만큼 배열을 만든다, 알파벳 위치에 해당하는 문자가 등장하면 인덱스를 1증가시킨다 int[] alphabet = new int[26]; 이처럼 미리 알파벳 크기만큼의 정수형 배열을 선언 후 풀이를 시작한다. 선언된 배열의 값들을 모두 0으로 초기화시키고, 등장하는 문자에 해당하는 인덱스를 카운트 시킨다. /..

Algorithms/프로그래머스

[프로그래머스] '캐릭터의 좌표' - Java

머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요. 이동로직을 자바 코드단에서 좌표계로 표현하는 과정이었다. Try 1) int[] answer = {0, 0}; i..

Algorithms/프로그래머스

[프로그래머스] '가까운 수' - Java

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요. 가까운 수라는 개념을 어떻게 구현해야할지 먼저 생각해보아야했다. 앞 뒤 값으로 n값과의 차이가 가장 적은 것을 구해야했다. Try 1) int answer = 0; // 초기값은 배열의 첫번째값 차이로 설정 int diff = Math.abs(array[0] - n); int target = 0; for(int i = 0; i Math.abs(array[i] - n)){ diff = Math.abs(array[i] - n); target = array[i]; } } answer =..

Algorithms/프로그래머스

[프로그래머스] '중복된 문자 제거' - Java

문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요. 문자열에서 중복된 문자를 제거하는 문제이다. Try 1) String answer = ""; HashSet temp = new HashSet(); for(int i = 0; i < my_string.length(); i++){ temp.add(my_string.charAt(i)); System.out.println(temp); } System.out.println(temp); return answer; 자바의 자료구조 중 Set(세트)가 중복을 허용하지 않는 경우가 있어 HashSet을 사용해보았다. HashSet을 사용한 결과..

Algorithms/프로그래머스

[프로그래머스] '소인수분해' - Java

소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 2, 3, 5, 7일 경우의 조건과 나눠지는 부분이 아직 남아있을 경우의 조건들을 일일이 작성해보았지만, 조건문을 만족하지 못하는 경우가 생기기도 하였고 무한루프를 돌게 되었다. Try 1) int[] answer = {}; List save = new ArrayList(); int k = 0; while(n > 0) { // 낱개로 남았을때의 처리 if(n == 2 && n == 3 && n == 5 ..

Algorithms/프로그래머스

[프로그래머스] '숨어있는 숫자의 덧셈 (1)' - Java

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요. 문자열 정렬하기(1) 문제와 유사한 문제이다. 정수배열로부터 temp에 입력받은 값들을 answer에 누적해주면 되는 문제이다. Try 1) int answer = 0; String string_num = my_string.replaceAll("[^0-9]", ""); int num_int = Integer.parseInt(string_num); int[] temp = new int[string_num.length()]; int i = 0; while(num_int > 0) { temp[i] = num_int % 10; i++; num_int = num_in..

Algorithms/프로그래머스

[프로그래머스] '문자열 정렬하기 (1)' - Java

문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요. 문자열 안에서 숫자(정수형)를 찾아 리스트화 시키고 오름차순 정렬까지 하는 문제이다. 처음에는 문자열을 charAt()으로 하나하나 쪼개어 0~9범위에 해당하는지를 검사하고자 하였음 Try 1) List temp = new ArrayList(); int string_num = 0; int test_num = 0; for(int i = 0; i 문자형이므로 Integer.parseInt()로 한..

LEFT
'Algorithms/프로그래머스' 카테고리의 글 목록 (3 Page)