smooth waters run deep

분류 전체보기 122

Level1_수박수박수박수박수박수? (JAVA)

코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조 programmers.co.kr StringBuilder 이용 class Solution { public String solution(int n) { StringBuilder sb = new StringBuilder(); for(int i=0; i

1d-1c/Programmers 2020.12.14

Level1_문자열 내림차순으로 배치하기 (JAVA)

코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 programmers.co.kr import java.util.Arrays; class Solution { public String solution(String s) { char[] strTochar = s.toCharArray(); Arrays.sort(strTochar); StringBuilder sb = new StringBuilder(new String(strTochar)); return sb.reverse().toString(); } } 1. String ..

1d-1c/Programmers 2020.12.13

Level1_정수 제곱근 판별 (JAVA)

코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr class Solution { public long solution(long n) { double num = Math.sqrt(n); return num==(long)num ? (long)Math.pow(num+1,2) : -1; } } Math.sqrt() - 제곱근 구할 때 이용한다. 예: 루트25 = 5 = (int)Math.sqrt(25) - 리턴 값 : double 형 '정수' 인지 어떻게 확인할까? double num1 ..

1d-1c/Programmers 2020.12.13

Level1_다트게임 (JAVA)

코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr import java.util.List; import java.util.ArrayList; class Solution { public int solution(String dartResult) { int[] cal = new int[3]; //3번의 기록 점수 저장 배열 int idx = 0; //cal[] 인덱스 for(int i=0; i='0' && dartResult.charAt(i) i++ } } //S,D,T 판별 if(dartResult.charAt(i)=='S'){ cal[idx] = (int)Math.pow(cal[idx],1); idx++; //*#은 옵션이므로 일단 cal[] 인덱스++ continue; } else ..

1d-1c/Programmers 2020.12.11

Level1_비밀지도 (JAVA)

코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr ① 이진수 변환 메소드 이용 class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; for(int i=0; i

1d-1c/Programmers 2020.12.11

십진수 -> 이진수 변환

① 메소드로 구현하기 십진수 9를 이진수로 바꾸는 과정은 아래의 그림과 같다. 바꾸고자하는 십진수 값을 2로 나누어, 몫이 1이 될때까지 모든 나머지값을 거꾸로 출력한다. 이 과정을 그대로 코드로 구현하면 다음과 같다. /* n : 비트 자리 수 (예: 9=1001(2)일때, 비트 자리 수 n=5 : 01001(2)) num : 십진수 */ public static int[] makeBinary(int n, int num){ int[] result = new int[n]; int i = n-1; while(num != 1){ result[i--] = num%2; num /= 2; } result[i] = num; //가장 마지막 num/2값 return result; } ② Integer.toBinary..

공부내용/JAVA 2020.12.11

Level1_실패율 (C++) (JAVA)

코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr [C++] #include #include #include //pair, count, sort using namespace std; bool compare(const pair &a, const pair &b){ if (a.first > b.first) return true; // >내림차순 else if (a.first == b.first) return a.second < b.second; //

1d-1c/Programmers 2020.12.09

N-Queens Problem (BOJ_9663)

N-Queens Problem 이란? - N개의 Queen이 서로 상대방을 공격하지 않도록 NxN 체스판에 위치시키는 문제 (Queen은 왼쪽,오른쪽,위,아래,대각선의 모든 방향으로 원하는 만큼 이동할 수 있다.) - 서로 공격하지 않기 위해서는 : 같은 행 or 열 or 대각선 상에 위치하지 않아야 한다. - 백트래킹(Back Tracking) 대표 문제 예) N=4일 때, 4-Queens 문제 해결 과정 (1,1)~(4,4) 의 모든 위치를 탐색하며 퀸의 위치를 결정하는 DFS를 이용하면, 각 행마다 4가지의 경우를 각각 확인해야 하므로 4x4x4x4=256 가지의 경우를 탐색해야 한다. 모든 경우를 탐색해 결과를 찾아야 하기때문에 비효율적이므로, 각 행마다 퀸의 위치로 불가능한 위치는 탐색하지 않고..