[Programmers] Java 프로그래머스 레벨1 하샤드 수 문제 풀이
·
Algorithm/Programmers
하샤드 수(harshad number)는 주어진 진법에서 수의 각 자릿수 숫자의 합으로 나눠떨어지는 자연수를 말한다. 인도의 수학자 카프리카가 정의했으며, '기쁨을 준다'는 뜻의 산스크리트어 단어인 harshad에서 유래했다. (출처 : 꺼무위키) 문제 하샤드 수 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 10 true 12 true 11 false 13 false 입출력 예 ..
[Programmers] Java 프로그래머스 레벨1 두 정수 사이의 합 해답
·
Algorithm/Programmers
문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 a, b 두개의 정수를 받아 a b 사이에 있는 모든 값들을 더 하고 사용자에게 출력해주면 되는 문제 아주 예~~~전에 프로그래머스에서 한 문제도 풀 지 못했던 시절 작성해놓은 코드가 있어서 살짝 손만봐서 제출했다. 풀고나서 다른 사람들의..
[Programmers] Java 프로그래머스 레벨1 자연수 뒤집어 배열로 만들기 해답
·
Algorithm/Programmers
문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5,4,3,2,1] 자연수 n을 받아, 배열로 만든 뒤 역순으로 출력해주면 되는 문제, 우선 n을 받아 String으로 파싱 후 스트링 배열에 넣어주고, 배열을 Collections의 reverse 함수를 사용하여 뒤집고, 뒤집힌 배열은 반복문을 사용해서 그대로 반환될 int형 배열에 넣어준다. 음.. 간단..한? 문제였다! 아래는 해답 package list; import java.util.Arrays; import java.util.Collection..
[Programmers] Java 프로그래머스 레벨1 나누어 떨어지는 숫자 배열 해답 (Arrays, ArrayList)
·
Algorithm/Programmers
숫자로만 이루어져 있는 배열 하나, 배열의 숫자들을 나눠줄 인자값 하나로 문제를 풀어야한다. 반환할 값이 있는 경우에 반환하되, 반환할 값이 없다면 -1을 return한다. 딱! 보면 금방풀 수 있는 문제 지만 나는 똥고집 부린다고 엄청 헤맸다. 그냥 ArrayList 사용해서 넣어줄건 넣어주고 뺄건 빼 버렸음 됐는데 뭐에 씌인건지 ArrayList 말고 단순 배열을 반복문으로 제어하면 되지 않을까? 하다가 시간만 왕창 날렸다 ㅋㅋㅋㅋ ArrayList를 사용하면 문제가 상당히 쉬워진다. ArrayList로 Integer형 배열을 하나 만들고, 파라미터로 넘어온 s배열과 divisor를 반복문으로 나누며, 만약 나머지가 0일 경우 해당 숫자를 중간 배열에 넣어준다. 반복문이 종료되고 0으로 나눠지는 수가..
[Programmers] Java 프로그래머스 레벨1 정수 내림차순으로 배치하기 해답 (Arrays, Collection)
·
Algorithm/Programmers
long형으로 전달되는 정수 n을 내림차순으로 정렬해야하는 문제, 레벨1의 여러 문제를 풀어보면 split이라는 함수를 만나게 되는데, 그 함수를 사용하여 풀면 되는 문제! + Collection의 reverse까지 다만 이 문제를 나의 풀이대로 풀다보면 String.join 이라는 함수를 만나게 되는데, 이 함수는 나도.. 검색해서 찾았다 String.join Concatenates the elements of a specified array or the members of a collection, using the specified separator between each element or member. 각 요소나 멤버 사이에 지정된 구분 기호를 사용하여 지정된 배열의 요소나 컬렉션의 멤버를 연결합..
[Programmers] Java 프로그래머스 레벨1 가운데 글자 가져오기 해답
·
Algorithm/Programmers
위 문제는 자바에서 제공하는 문자열 자르기(substring) 기능을 사용하여 문자열의 길이가 홀수, 짝수일 때 알맞게 사용자에게 문자열을 출력시켜주면 된다. 파라미터로 문자열을 넘기고, substring을 이용하여 출력해주면 되겠다! 라고 생각까지 했는데, 어떻게 잘라서 보여줄 지 고민을 많이 해봤던 거 같다. substring에는 startidx, endidx 두개 다 지정할 수도 있고, startidx만 지정할 수 있으니 앞으로 비슷한 문제나 실무에서 써야하는 일이 생긴다면 참고해서 사용하면 된다. 아래는 해답 package list; public class Programmers_MiddleString { public static String solution(String s) { // 모든 코드가 ..
[Programmers] Java 프로그래머스 레벨1 제일 작은 수 제거하기 해답
·
Algorithm/Programmers
진짜.. 요 며칠간 힘들게 푼 문제 ㅠㅠ 테스트 케이스가 4, 3, 2, 1 이랑 10 두개만 있었을 때는 아무리 돌려도 통과가 되는데 제출만 하면 아래와 같이 알 수 없는 런타임 에러와 테스트 실패가 연이어 나왔다 ㅠㅠ 최초 작성했던 소스는 이렇다. 런타임이 발생했던 원인은 전에 작성했던 for (int i = 0; i < s.length; i++) { if (s[i] != compNum) { answer[i] = s[i]; } } 이 코드가 문제였는데, answer[i] 는 위에서 s.length에 -1을 한 값으로 배열을 만들어놨는데, 작은 크기에 s[i]를 넣어주려고 하니, ArrayIndexOutOfBoundsException이 발생하거나, 혹여나 코드가 실행되도, 전부 실패처리가 되어버리는 것..
[Codeup] 코드업 Java 자바 삼각형 출력하기 1 (1353번 문제)
·
Algorithm/Codeup
n을 스캐너로 입력받아 삼각형을 출력하면 되는 문제. 스캐너와 이중반복문을 사용하여 줄바꿈을 해가며 '*' 문자를 찍어주면 되는 문제! package list; import java.util.Scanner; public class Codeup1353 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("n의 값을 입력해주세요 : "); int input = sc.nextInt(); for (int i = 0; i < input; i++) { for(int j = 0; j
[Programmers] Java 프로그래머스 레벨1 배열의 평균구하기 (자바 평균 구하기) 해답
·
Algorithm/Programmers
정수를 담고 있는 배열의 평균값을 리턴하는 solution 함수를 완성하라는 문제, 1 2 3 4 가 넘어왔을 때, 5 5 가 넘어왔을 때 등 여러가지 형태의 배열이 넘어와도 그 배열의 평균을 구해서 사용자에게 출력해주면 되는 문제 자바를 처음 배웠을 때 스캐너를 배우면서 3개~4개의 숫자를 직접 입력받아 평균을 구하는 문제가 있었는데, 이런식으로 배열을 받아 배열의 평균을 내는건 처음 해봤던 거 같다. 음.. 그래도 다른 레벨 1 문제랑 비교해보면 나름 쉬웠던 문제였다. package list; public class Programmers_Average { public static double solution(int[] s) { // 결과를 저장할 double 변수 double answer = 0; /..
[Programmers] Java 프로그래머스 레벨1 자바 직사각형 별찍기 해답(자바 별찍기)
·
Algorithm/Programmers
전공자라면 누구나 한번쯤 겪어봤을 공포의 별찍기 자바버전 그래도 계단형 별찍기도 아니고 그냥 단순 사각형 별찍기라서 난이도는 상당히 낮은편이다 스캐너의 존재를 알고 있고, 이중반복문만 사용할 수 있다면 쉽게 풀 수 있는 문제! 더 이상의 설명은 생략..해도 되려나? 아래는 해답 package list; import java.util.Scanner; public class Programmers_RectangleStar { public static void solution(int a, int b) { Scanner sc = new Scanner(System.in); // 별을 찍기 위한 int 변수 //a = sc.nextInt(); //b = sc.nextInt(); // 반복문! for (int i = ..
[Programmers] Java 프로그래머스 레벨1 자바 문자열 내림차순으로 배치하기 해답
·
Algorithm/Programmers
문자열을 하나 받아서, 배열로 만들어주고 큰것부터 작은 순으로 정렬하여 사용자에게 출력해주면 되는 문제, 문자열을 배열로 만드는건 다른 문제들을 풀면서 어떻게 해야하는지 알고 있었지만, 문자열 정렬은 처음이었다. 오라클이었으면 ORDER BY 사용해서 그냥.. 내 마음대로 오름차순, 내림차순 정렬하면 됐겠지만 자바에서는 해본 적이 없어 검색도 해보고 다른 사람들의 풀이도 보면서 해답을 찾아나갔다. Arrays와 Collections을 사용하여, 배열을 정렬시켰는데 정말 고맙게도 Collections에 reverse가 있어 낼름가져다가 사용하였다. 위의 두 메소드를 이용하면 이번 문제는 쉽게 풀 수 있다. 사실상 공부만 조금 더 했다면 풀 수 있었던 문제! 누구나 처음엔 모를 수 있으니까 이번 문제풀이를 ..
[Programmers] Java 프로그래머스 레벨1 같은 숫자는 싫어 해답
·
Algorithm/Programmers
같은 숫자는 싫어! 문제에도 나와있듯 배열안에 같은 숫자를 모두 지우는게 아니라, '연속적으로 나타나는' 숫자만 제거해주면 되는 문제이다. 처음에는 반복문을 하나만 쓸까 두개를 만들어서 쓸까 생각을 많이 해봤는데, 엄청 단순하게 배열로만 풀어야한다고 생각을해서 이중포문을 만들어서 문제를 풀려고 했으나, 진짜 도저히 풀 수가 없었다.. 아는게 그만큼인건지 애초에 푸는 방식이 잘못됐던건지 지금은 알 수 없지만 ㅠㅠ.. 결국 ArrayList를 사용해서 문제를 풀기로 했다. 실무에서 ArrayList를 본 적도 있고 내가 사용해본적도 있었는데, 알고리즘 문제를 풀면서 다시 쓰니까 느낌이 새로웠다. 해답을 보기전에 문제를 정리해보자면 이렇다. 숫자로만 이루어져있는 배열이 하나 있는데, 이 배열에서 연속된 숫자는..
[Programmers] Java 프로그래머스 문자열을 정수로 바꾸기 문제 해답
·
Algorithm/Programmers
위 문제는 자바의 Integer를 알고 있다면 쉽게 풀 수 있는 문제다. Integer의 parseInt를 사용해서, 문자열 s를 int로 형변환하여 사용자에게 출력만 해주면 되는 문제. 더 이상 설명이 필요없기 때문에 설명은 간단하게! 금요일이니까~ package list; public class Programmers_StringParseInt { public static int solution(String s) { // 결과를 저장할 int 변수 int answer = 0; // 문자열로 넘어온 s를 함수를 사용하여 answer에 담아준다 answer = Integer.parseInt(s); // answer에 담긴 값 리턴 return answer; } public static void main(S..
[Programmers] Java 프로그래머스 짝수와 홀수 (자바 짝수 홀수) 문제 해답
·
Algorithm/Programmers
조건문을 활용하여 짝수일 때 "Even" 홀수일 때 "Odd"를 출력하면 되는 간단한 문제 package list; public class Programmers_EvenAndOdd { public static void solution(int s) { // 결과를 리턴할 String 변수 String answer = ""; // s를 2로 나눴을 때 나머지가 0일 경우 if(s % 2 == 0) { // 짝수 answer = "Even"; } else if (s == 0) { // 나눈값과 상관없이 0일 경우 짝수 answer = "Even"; } else { // 나머지가 0이 아닐 경우 홀수 answer = "Odd"; } // 결과 리턴 System.out.print(answer); } public ..
[Programmers] Java 프로그래머스 서울에서 김서방 찾기 문제 풀이 및 해석
·
Algorithm/Programmers
프로그래머스 코딩테스트 연습 레벨1 문제중에 제일 쉬운 문제가 아닐까.. 싶은 문제 String형 배열 seoul에서 "Kim"의 위치를 찾으면 되는 간단한 문제! 보통 나같은 경우에는 문제를 IDE에서 먼저 풀어보고 결과가 의도한대로 나오면 웹 IDE로 옴기는데, 이번 문제 같은 경우에는 분명 맞게 푼 거 같은데 계속 오답이 나오길래 뭐지..? 했다 천천히 살펴보니 문제에서 이미 seoul이라는 배열을 제공해주고 있었다.. 가끔씩 급하게 하다가 실수를 하곤 하는데, 그 습관이 여기서도 나왔던 거 같다. 앞으로 천천히 문제부터 읽고, 정확히 어떤것을 해야하는지 정해놓고 코딩하는 습관을 길러야겠다. 실무에서도 마찬가지지만 어떤 과제가 주어지면 우선 급한대로 풀고보자라는 생각이 들어 고쳐야겠다고 생각은 했었..
헌일
'분류 전체보기' 카테고리의 글 목록 (4 Page)