중간고사가 끝나고 어떤 것을 공부할까 고민하다가
알고리즘은 방학 때 집중해서 공부하는게 나을 듯 해서 프로그래머스에서 코딩테스트 입문부터 시작하기로 했다.
사실 처음이라 조금 쉽긴해서 많이 문제를 풀었다.
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
answer = num1 - num2;
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
answer = num1 / num2;
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
if(num1==num2){
answer=1;
}
else{
answer=-1;
}
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
answer = num1 * num2;
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = -1;
answer=num1%num2;
return answer;
}
}
class Solution {
public int solution(int age) {
int answer = 0;
answer=2022-age+1;
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = -1;
answer=num1+num2;
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
answer=num1*1000/num2;
return answer;
}
}
class Solution {
public int solution(int angle) {
int answer = 0;
if(angle<90){
answer=1;
}
else if(angle==90){
answer=2;
}
else if(angle<180){
answer=3;
}
else{
answer=4;
}
return answer;
}
}
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=2;i<=n;i++){
if(i%2==0){
answer+=i;
}
}
return answer;
}
}
class Solution {
public double solution(int[] numbers) {
double answer = 0;
for(int i=0;i<numbers.length;i++){
answer+=numbers[i];
}
answer=answer/numbers.length;
return answer;
}
}
class Solution {
public long solution(int n, int k) {
long answer = 0;
int cnt=0;
cnt=n/10;
answer=n*12000+(k-cnt)*2000;
return answer;
}
}
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[num_list.length];
int cnt=0;
for(int i=num_list.length-1;i>=0;i--){
answer[cnt]=num_list[i];
cnt++;
}
return answer;
}
}
class Solution {
public int[] solution(int[] numbers) {
int[] answer = new int[numbers.length];
for(int i=0;i<numbers.length;i++){
answer[i]=numbers[i]*2;
}
return answer;
}
}
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2-num1+1];
int index=0;
for(int i=num1;i<=num2;i++){
answer[index]=numbers[i];
index++;
}
return answer;
}
}
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
for(int i=0;i<array.length;i++){
if(array[i]==n){
answer++;
}
}
return answer;
}
}
class Solution {
public int[] solution(String[] strlist) {
int[] answer = new int[strlist.length];
for(int i=0;i<strlist.length;i++){
answer[i]=(strlist[i]).length();
}
return answer;
}
}
class Solution {
public String solution(String my_string) {
String answer = "";
String[] arr=new String[my_string.length()];
for(int i=0;i<my_string.length();i++){
arr[i]=my_string.substring(i,i+1);
}
for(int i=my_string.length()-1;i>=0;i--){
answer+=arr[i];
}
return answer;
}
}
class Solution {
public String solution(String my_string, String letter) {
String answer = "";
answer = my_string.replaceAll(letter,"");
return answer;
}
}
이거는 한 번에 풀지는 못했고.. 문자열에서 특정 문자를 제거할 수 있는 방법을 알아보다가.. replaceAll("바꿀 문자열","어떤 문자열로 바꿀건지")
이렇게 쓰면 된다고 한다
그러니까 만약 특정 문자열(str="aabbccddeeaa")에서 a라는 문자를 A라고 바꾸고 싶다면
str.repalceAll("a","A");
이렇게 하면 AAbbccddeeAA로 치환되게 된다.
그래서 이 문제는 my_string이라는 문자열에서 letter라는 문자를 찾아 공백처리하면 된다.
class Solution {
public int solution(int[] dot) {
int answer = 0;
if((dot[0]>0)&&(dot[1]>0)){
answer=1;
}
else if((dot[0]<0)&&(dot[1]>0)){
answer=2;
}
else if((dot[0]<0)&&(dot[1]<0)){
answer=3;
}
else {
answer=4;
}
return answer;
}
}
class Solution {
public int[] solution(int[] num_list) {
int[] answer= {0,0};
for(int i=0;i<num_list.length;i++){
if(num_list[i]%2==0){
answer[0]++;
}
else{
answer[1]++;
}
}
return answer;
}
}
class Solution {
public int[] solution(int n) {
int[] answer =new int[n+1];
int index=0;
for(int i=1 ; i<=n ; i++){
if(n%i==0){
answer[index]=i;
index++;
}
}
int[] arr=new int[index];
for(int i=0;i<index;i++){
arr[i]=answer[i];
}
return arr;
}
}
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int numerator, denominator;
for(int i=2;;i++){
if(((i%denom1)==0)&&((i/denom1)>0)&&((i%denom2)==0)&&((i/denom2)>0)){
denominator=i;
numerator=numer1*(i/denom1)+numer2*(i/denom2);
break;
}
}
int i=1;
while(true){
i++;
if((i>denominator)&&(i>numerator)){
break;
}
if((denominator%i==0)&&(numerator%i==0)){
denominator=denominator/i;
numerator=numerator/i;
i--;
}
}
int []answer={numerator,denominator};
return answer;
}
}
뭔가.. 이것보다 쉽게 푸는 방법이 있을 듯 한데.. 우선 나는 이렇게 풀어보았다.
처음에 제출해봤을 때 실패가.. so many 떠서.. 화가 나서 뭐가 문젠지 살펴보았다.
그래서 뭔가 내가 로직을 잘못 짠건가 곰곰히 생각해보다가 문제를 읽어보니 기약분수로 나와야한대서 통분이.. 필요하구나를 깨달았다.
지금 수학학원에서 분수를 구하면 통분했는지 무조건 확인해봐야되고 문제도 잘 읽어야된다고 잔소리했으면서^^ 내가 안할줄은..
오늘 꽤 많은 문제를 풀은 듯 싶은데(사실.. 쉬워서..그런듯 하다) 내일은 아마 학원 알바가 있어서 이것보단 못할 것 같다. 그래도 얼른 코딩테스트 입문 끝내고 코딩테스트 고득점 Kit도전해보고 싶다!