본문 바로가기

알고리즘53

프로그래머스 Lv.0 리스트 자르기 프로그래머스 Lv.0 리스트 자르기 정수 n과 정수 3개가 담긴 리스트 slicer, 정수 여러 개가 담긴 리스트 num_list가 주어진다. slicer에 담긴 정수를 차례대로 a,b,c라고 할 때 n에 따라 num_list를 다음과 같이 슬라이싱 하려고 한다. n=1 : num_list의 0번 인덱스부터 b번 인덱스까지 n=2 : num_list의 a번 인덱스부터 마지막 인덱스까지 n=3 : num_list의 a번 인덱스부터 b번 인덱스까지 n=4 : num_list의 a번 인덱스부터 b번 인덱스까지 c간격으로 올바르게 슬라이싱한 리스트를 return하라. ** 풀이방법 ArrayList를 만들어서 n의 조건에 맞게 코드를 짰다. (for문 범위 설정에 주의할 것!) List list = new Ar.. 2023. 7. 17.
프로그래머스 Lv.0 전국 대회 선발 고사 프로그래머스 Lv.0 전국 대회 선발 고사 0번부터 n-1번까지 n명의 학생 중 등수가 높은 3명을 선발한다. 단, 전국 대회에 참여할 수 있는 학생만 포함시킨다. 각 학생들의 선발 고사 등수를 담은 정수 배열 rank[ ] 전국 대회 참여 가능 여부가 담긴 boolean 배열 attendance[ ]이 주어진다. 등수가 높은 순서대로 각각 a, b, c번이라고 할 때 10000 x a + 100 x b + c 를 return하라. **풀이 방법 TreeMap으로 key=순위, value=인덱스값을 저장한다. ※ TreeMap을 사용하면 기본적으로 오름차순 정렬이 된다. (왼쪽 노드-루트 노드-오른쪽 노드) TreeMap map = new TreeMap(); for (int i=0; i 2023. 7. 17.
프로그래머스 Lv.0 이진수 더하기 프로그래머스 Lv.0 이진수 더하기 이진수를 의미하는 두 개의 문자열 bin1과 bin2이 매개변수로 주어질 때, 두 이진수의 합을 return하라! bin1 bin2 result "10" "11" "101" "1001" "1111" "11000" 이진수를 더할 때 각 자리의 수가 모두 1이라면 앞 자리에 받아올림을 해줘야 한다. ** 풀이 방법 Integer.parseInt()는 두 번째 매개변수로 사용할 숫자 진법을 지정한다. int a = Integer.parseInt(bin1,2); int b = Integer.parseInt(bin2,2); 2진법을 사용해서 형변환 한 후 bin1과 bin2의 합을 구해서 다시 String으로 형변환 시켜주면 끝! (형변환 할 때 이진수 그대로 나와야 하므로 t.. 2023. 7. 15.
프로그래머스 Lv.0 외계행성의 나이 프로그래머스 Lv.0 외계행성의 나이 PROGRAMMERS-962 행성에서는 나이를 알파벳으로 표현한다. a는 0, b는 1, c는 3 ... 예를 들어 23살은 cd, 51살은 fb로 표현한다. 나이 age가 매개변수로 주어질 때 PROGRAMMERS-962식 나이를 return하라! ** 풀이 방법 a=0, b=1, c=2, ... 저장되는 패턴을 보니 배열의 인덱스를 떠올렸다. 모든 소문자 알파벳을 담은 char배열을 만든다. char[] alpha = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; age를 문자열로 변환한다. String age1 = In.. 2023. 7. 14.
반응형