본문 바로가기

Algorithm/프로그래머스

프로그래머스 Level1

반응형

알고리즘 역시 공부를... 시작했어요


프로그래머스와 백준 싸이트에서 공부를 할 예정입니다.


저는 자바 유저이니 자바로만 된 문제를 풀어보겠습니다!!!




프로그래머스 Level1 


1. 가운데 글자 가져오기

if(word.length()%2 == 0) {
return word.substring(word.length()/2-1, word.length()/2+1);
} else {
return word.substring(word.length()/2, word.length()/2+1);
}


2. 최대 공약수와 최소 공배수

int[] answer = new int[2];
if(a <= b) {
for (int j = 1; j <= b; j++) {
for (int i = 1; i <= a; i++) {
if (a % i == 0 && b % i == 0) {
answer[0] = i;
}
}
}
}
answer[1] = (a * b) / answer[0];

return answer;


3. 스트링을 숫자로 바꾸기

public int getStrToInt(String str) {
return Integer.valueOf(str);
}


4. 피보나치 수

public long fibonacci(int num) {
long answer = 0;

if(num >= 2) {
int[] baNum = new int[num+1];
baNum[0] = 0;
baNum[1] = 1;

for(int i=2; i<=num; i++) {
baNum[i] = baNum[i-1] + baNum[i-2];
}

answer = baNum[num];
}

return answer;
}


5. 서울에서 김서방 찾기

public String findKim(String[] seoul){
//x에 김서방의 위치를 저장하세요.
int x = 0;

for(int i=0; i<seoul.length; i++) {
if(seoul[i].equals("Kim")) {
x = i;
}
}

return "김서방은 "+ x + "에 있다";
}


6. 약수의 합

public int sumDivisor(int num) {
int answer = 0;

for(int i=1; i<=num; i++) {
if(num%i == 0) {
answer += i;
}
}

return answer;
}


7. 나누어 떨어지는 숫자 배열

public int[] divisible(int[] array, int divisor) {
int j=0;

for(int i=0; i< array.length; i++) {
if(array[i]%divisor == 0) {
j++;
}
}
int[] ret = new int[j];

j = 0;
for(int i=0; i< array.length; i++) {
if(array[i]%divisor == 0) {
ret[j] = array[i];
j++;
}
}

return ret;
}


8. 최대값과 최소값

public String getMinMaxString(String str) {
String[] dividedStr = str.split(" ");
int value, min = Integer.valueOf(dividedStr[0]), max = Integer.valueOf(dividedStr[0]);

for(int i=1; i<dividedStr.length; i++) {
value = Integer.parseInt(dividedStr[i]);
if(min > value) min = value;
if(max < value) max = value;
}

return min+" "+max;
}


반응형