
프로그래머스 코딩테스트 입문 Java로 Day 25 시뮬레이션 조건문 수학 풀기
문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제한사항
A의 길이 = B의 길이 < 100A, B는 알파벳 소문자로 이루어져 있습니다.입출력 예
| A | B | result |
|---|---|---|
| "hello" | "ohell" | 1 |
| "apple" | "elppa" | -1 |
| "atat" | "tata" | 1 |
| "abc" | "abc" | 0 |
class Solution {
public int solution(String A, String B) {
int answer = 0;
String str = A;
for (int i = 0; i < A.length(); i++) {
if (str.equals(B)) return answer;
String a = str.substring(str.length()-1);
str = a + str.substring(0, str.length() - 1);
answer++;
}
return -1;
}
}
참고 링크
string char 너무 어렵다
머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.

정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.
제한사항
M, N < 100입출력 예
| M | N | result |
|---|---|---|
| 2 | 2 | 3 |
| 2 | 5 | 9 |
| 1 | 1 | 0 |
class Solution {
public int solution(int M, int N) {
int answer = 0;
answer = M - 1 + (N - 1) * M;
return answer;
}
}
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
제한사항
num ≤ 100total ≤ 1000num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.입출력 예
| num | total | result |
|---|---|---|
| 3 | 12 | [3, 4, 5] |
| 5 | 15 | [1, 2, 3, 4, 5] |
| 4 | 14 | [2, 3, 4, 5] |
| 5 | 5 | [-1, 0, 1, 2, 3] |
class Solution {
public int[] solution(int num, int total) {
int[] answer = new int[num];
int sum = 0;
for (int i = -49; i <= 1000; i++) {
sum = 0;
for (int j = 0; j < num; j++) {
answer[j] = i;
sum += i;
i++;
}
i -= num;
if (sum == total) break;
}
return answer;
}
}
음수가 가장 많이 나오는 수는 몇일까? → num = 99 / total = 0 → result [-49 ~ 49]
result의 최솟값 = -49
그렇다면 result의 최댓값이 나올 수 있는 값은? → total의 최댓값이 1000이지만 연속된 수의 값을 더해서 나온 것이 1000이여야 하기 때문에 최댓값은 1000이라고 가정하고 갈 것임.
등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
제한사항
common의 길이 < 1,000common의 원소 < 2,000common의 원소는 모두 정수입니다.입출력 예
| common | result |
|---|---|
| [1, 2, 3, 4] | 5 |
| [2, 4, 8] | 16 |
class Solution {
public int solution(int[] common) {
int answer = 0, count = 0, what = 0;
if (common[1] - common[0] == common[2] - common[1]) answer = common[common.length-1] + common[1] - common[0];
else answer = common[common.length-1] * (common[1] / common[0]);
return answer;
}
}
등차수열에 대한 조건이 맞나 안맞나 확인 후 등차 등비 구별
1) 20일을 달린 결과

시작할 때는 10만명이 내 위에 있었는데 지금은 2만명 채 남지 않았다. 꾸준히 하면 앞으로 등수는 더 올라갈 것이지만 이만큼의 사람을 더 따라잡아야 한다니 한참 멀었다.
아마 내일 회의 결과를 통해서 다음에 뭐를 진행할 것인지가 나오겠지만 아마 리팩토링을 할 것 같다. 문제를 풀어가면서 아쉬웠던 점을 고쳐가는 시간을 가져야 겠다.
이렇게 리팩토링을 할 수 있다는 면에서 왜 깃허브에 코드를 올리는지 이해가 가기도 한다. (나는 벨로그랑 노션 찾아가면서 코딩해야겠네..)
2) 기록표 -완-
