프로그래머스 34

[2020-11-18] 정수 제곱근 판별도움말

푼 시간 : 30분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr 문제를 풀때 Math를 쓰기 싫어서 최대한 고민을 했었다. 그치만 제곱근을 찾을 방법이면서, 가장 빠른 방법은 sqrt를 쓰는 방법 밖에 없는 것 같아 썼다. 있을지는 모르겠지만 다음에는 안 쓰고 풀 수 있을만한 방법을 찾고싶다. class Solution { public long solution(long n) ..

코딩테스트 2020.11.18

[2020-11-17] 정수 내림차순으로 배치하기

푼 시간 : 30분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr 역정렬을 하는데 long형이라서 형변환을 하고 Math.pow가 double이었기에 cnt도 형변환을 해야 해서 할것이 매우 많은 문제였다. 요새 문자나 숫자 정렬하는 문제를 많이 푸는 것 같다 ㅎㅎㅎ import java.util.*; class Solution { public long sol..

코딩테스트 2020.11.17

[2020-11-16] 이상한 문자 만들기

푼 시간 : 40분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12930# 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 문제를 풀기 위해 고민했던것은 공백을 제거하는 것 이었다. split으로 문장에 띄어쓰기마다 분리를 해야 했었기때문에 기준이 필요했다. split메소드는 split(String regex, int limit) 인자를 가지고 있는데 limit을 통해 반환될 배열의 크기에 영향을 준다. 나머지는 심플하게 char형에서 대문자 소문자..

코딩테스트 2020.11.16

[2020-11-13] 약수의 합

푼 시간 : 5분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12928 코딩테스트 연습 - 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수 programmers.co.kr 너무나도 기본적인 문제! 2번째 페이지에 있어서 이제야 풀게되었다. class Solution { public int solution(int n) { int answer = 0; for(int i=1; i

코딩테스트 2020.11.13

[2020-11-11] 서울에서 김서방 찾기

푼 시간 : 10분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12919 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제 programmers.co.kr 레벨1에서 사람들이 많이 풀어본 문제는 이제 어느정도는 조건만 생각하면 되는 것 같다. 저번 문제 이후로 조건에 많이 신경쓰고 있다. equals를 아는지 모르는지에 대한 문제인 것 같다. String은 ==으로 비교가 안되기때문에 equals를 써 줘야 한다. class..

코딩테스트 2020.11.11

[2020-11-11] 문자열 다루기 기본

푼 시간 : 40분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이 programmers.co.kr 지문을 잘 읽어봐야 한다는 것을 강조하는 문제였다... s가 4와 6이어야 한다는 조건을 보지 못하고 다 만들어놓고나서 엄청나게 헤맸다... 다음부터는 지문을 잘 읽어봐야겠다. class Solution { public boolean solution(String s) { boolean ans..

코딩테스트 2020.11.11

[2020-11-10] 문자열 내 p와 y의 개수

푼 시간 : 20분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12916 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr 문제를 푸는 데는 오래 걸리지 않았다. 그냥 p와 y가 있느냐의 문제였기때문에 toLowerCase를 쓰느냐 toUpperCase를 쓰느냐의 차이였다. 이번에도 풀이를 좀 더 간소화하고 싶었으나 못해서 얼른 책을 가져와서 좀 더 공부를 해봐야 되겠다고 느낀다. class ..

코딩테스트 2020.11.10

[2020-11-09] 문자열 내 마음대로 정렬하기

푼 시간 : 2시간 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12915# 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1 programmers.co.kr 생각보다 체감시간이 훨씬 길었다. 남들이 보기에 쉬운 문제일수도 있었겠지만 조건을 맞추는게 까다로워서 생각보다 오래걸렸다... compareTo라는 메소드가 있었다는 것도 다시금 깨달았고 마지막 조건이 엄청나게 까다롭다는것을 알았다. 코드를 더럽게 짜고싶지 않아서 어떤식으로 정렬..

코딩테스트 2020.11.10