목록알고리즘테스트 (115)
거인의 코딩일지
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dfWUxo/btr6BgWYwK8/lbJ8P7Fi3WDnw6QucNN5rK/img.png)
class Solution { public String[] solution(String[] quiz) { String[] answer = new String [quiz.length]; // answer의 배열의 길이를 quiz와 동일하게 생성해준다. for(int i =0; i< quiz.length; i++){ String [] arr = quiz[i].split(" "); // 배열을 새로 만들어 quiz배열의 i값을 하나하나 쪼개준다 int n1 = Integer.parseInt(arr[0]); // 첫번째 값 int n2 = Integer.parseInt(arr[2]); // 두번째 값 int n3 = Integer.parseInt(arr[4]); // 결과 값 if(arr[1].equals("+..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ZZzoY/btr6tV660Uz/m1lCEsLMF7KIdaz45BFxt1/img.png)
class Solution { public int solution(int n) { int answer = 0; for(int i = 0; i< n ; i++){ answer++; while(answer%3 == 0|| String.valueOf(answer).contains("3")){ answer++; } } return answer; } } for문을 돌려서 쭉 더해주고 while문을 넣어서 3의 배수거나 3이 포함되면 쭉 더해주는 코드를 작성하여 해결했다. 클리어~
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dBr53h/btr6nWx27Cn/W97q2ewY7sUYVz6y8z1FBK/img.png)
class Solution { public String solution(String[] seoul) { String answer = ""; for(int i =0; i < seoul.length; i++){ if(seoul[i].equals("Kim")){ answer = "김서방은 "+i+"에 있다"; } } return answer; } } 이 문제를 풀면서 한번 틀렸는데 equal() 함수를 사용하지 않고 == 연산자를 사용했기 때문이였다! == 연산자는 두개의 대상의 주소값을 비교하는 반면 equals 메소드는 비교하고자 하는 두개의 대상의 값 자체를 비교하기에 문자열을 비교할 상황에서는 equals 함수를 사용해 주어야 쉽게 풀수있다. 그렇게 사용하고 결과는 통과~ ^^
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cJGdWB/btr5YT1vqdA/5knJuJZTlV3MCVBx9FLkKK/img.png)
class Solution { public String solution(int num) { String answer = ""; int N = num%2; if(N==0){ answer = "Even"; }else{ answer = "Odd"; } return answer; } } 정답률이 높은 것을 한번 시도해봤는데 너무 쉽게 풀었다!!! 결과는 역시 통과~~!!
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/NpkUT/btr5RhhPtTp/YsPB9u5YEe8yPGNyW1jHq0/img.png)
class Solution { public int solution(int number, int limit, int power) { int answer = 1; for(int i=2; i
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bfMoqU/btr5Qh3F0dS/HRw2buR4njt3US1NVVbMy0/img.png)
이번엔 Lv_1 정답률 50프로 후반!! 도전!!!! 이런 문제인데 결국 수학문제인 것이다.... 핳 ㅋㅋㅋㅋ class Solution { public int solution(int a, int b, int n) { int answer = 0; while(n>=a){ answer += (n/a)*b; n = (n/a)*b+(n%a); } return answer; } } 이런식으로 while문을 돌려서 answer 변수에 값을 더하면서 추가해주고 점점 줄어드는 n 값을 구해줬다!!
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Nl0Jz/btr4hyyS8qG/jGGhKb5wERkuj7EMBvUDW0/img.png)
n 에 있는 숫자를 하나하나 떼어둔 다음 숫자 하나하나 다 더한 값을 구하는 것이다! 이것 저것 고민해보니 정답이 2개가 나왔다! 첫번째 풀이!!! 우선 첫번째 정답이다!! num이라는 문자형 변수에 n의 값을 String 로 형변환 시켜 넣어준뒤 배열을 num길이만큼 선언하고 for 반복문 만들어준뒤 substring 로 하나하나 떼어주고 난 뒤 answer 에 다시 int로 형변환하여 값을 더해주면 완성!!! 두번째 풀이!!! 다음 정답은 split() 함수를 통해서 하나하나 나눠준뒤 for문을 돌려서 answer에 형변환하여 담아주는 것이다!!!
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lvKz5/btr4gwauyid/y95TEQVizjEKw1JeZ98bh1/img.png)
처음 문제를 보고 입출력에 예를 봤을때 오만한 실수를 했다. 제곱을 사용해서 n에 t+1을 제곱해주면 답이 나올 줄 알았지만 코드를 실행해보니 잘못된 생각이였고 다시 입출력 예를 자세하게 보면 n에 t+1을 제곱해주는게 아니라 2에 t 제곱을 다시 n에 해주어야 하는것이다. 위에 사진처럼 코드를 작성해 준 뒤 코드 실행을 하고 테스트 통과하고 제출하고 채점하니 역시 통과~!!!
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cSCfj4/btr38LzosD5/5k8gKyTxQA1wM0mYouTNyk/img.png)
오늘의 문제는 대문자를 소문자로 싹 바꾸고 소문자를 오름차순으로 정렬해서 return 하는 것이다!! 문제를 보고 아스키코드를 이용해서 풀어야지 했지만 생각보다 너무 복잡했고.... 실패하였다///핳 그래서 나는 아래와 같이 해결했다!! 문자를 소문자로 바꿔주는 함수를 사용한 후!! char 배열안에 문자열을 넣어준뒤 오름차순 정렬 후 다시 char배열을 문자열로 변환했다!!! 결과는 역시 성공!!!