전체 글

오늘 할 일은 내일로 미루고 내일 할 일은 생각하지 말자
문제 설명 두 정수 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 사이에 있는 모든 값들을 더 하고 사용자에게 출력해주면 되는 문제 아주 예~~~전에 프로그래머스에서 한 문제도 풀 지 못했던 시절 작성해놓은 코드가 있어서 살짝 손만봐서 제출했다. 풀고나서 다른 사람들의..
문제 설명 자연수 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..
숫자로만 이루어져 있는 배열 하나, 배열의 숫자들을 나눠줄 인자값 하나로 문제를 풀어야한다. 반환할 값이 있는 경우에 반환하되, 반환할 값이 없다면 -1을 return한다. 딱! 보면 금방풀 수 있는 문제 지만 나는 똥고집 부린다고 엄청 헤맸다. 그냥 ArrayList 사용해서 넣어줄건 넣어주고 뺄건 빼 버렸음 됐는데 뭐에 씌인건지 ArrayList 말고 단순 배열을 반복문으로 제어하면 되지 않을까? 하다가 시간만 왕창 날렸다 ㅋㅋㅋㅋ ArrayList를 사용하면 문제가 상당히 쉬워진다. ArrayList로 Integer형 배열을 하나 만들고, 파라미터로 넘어온 s배열과 divisor를 반복문으로 나누며, 만약 나머지가 0일 경우 해당 숫자를 중간 배열에 넣어준다. 반복문이 종료되고 0으로 나눠지는 수가..
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. 각 요소나 멤버 사이에 지정된 구분 기호를 사용하여 지정된 배열의 요소나 컬렉션의 멤버를 연결합..
위 문제는 자바에서 제공하는 문자열 자르기(substring) 기능을 사용하여 문자열의 길이가 홀수, 짝수일 때 알맞게 사용자에게 문자열을 출력시켜주면 된다. 파라미터로 문자열을 넘기고, substring을 이용하여 출력해주면 되겠다! 라고 생각까지 했는데, 어떻게 잘라서 보여줄 지 고민을 많이 해봤던 거 같다. substring에는 startidx, endidx 두개 다 지정할 수도 있고, startidx만 지정할 수 있으니 앞으로 비슷한 문제나 실무에서 써야하는 일이 생긴다면 참고해서 사용하면 된다. 아래는 해답 package list; public class Programmers_MiddleString { public static String solution(String s) { // 모든 코드가 ..
진짜.. 요 며칠간 힘들게 푼 문제 ㅠㅠ 테스트 케이스가 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이 발생하거나, 혹여나 코드가 실행되도, 전부 실패처리가 되어버리는 것..
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
정수를 담고 있는 배열의 평균값을 리턴하는 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; /..
전공자라면 누구나 한번쯤 겪어봤을 공포의 별찍기 자바버전 그래도 계단형 별찍기도 아니고 그냥 단순 사각형 별찍기라서 난이도는 상당히 낮은편이다 스캐너의 존재를 알고 있고, 이중반복문만 사용할 수 있다면 쉽게 풀 수 있는 문제! 더 이상의 설명은 생략..해도 되려나? 아래는 해답 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 = ..
문자열을 하나 받아서, 배열로 만들어주고 큰것부터 작은 순으로 정렬하여 사용자에게 출력해주면 되는 문제, 문자열을 배열로 만드는건 다른 문제들을 풀면서 어떻게 해야하는지 알고 있었지만, 문자열 정렬은 처음이었다. 오라클이었으면 ORDER BY 사용해서 그냥.. 내 마음대로 오름차순, 내림차순 정렬하면 됐겠지만 자바에서는 해본 적이 없어 검색도 해보고 다른 사람들의 풀이도 보면서 해답을 찾아나갔다. Arrays와 Collections을 사용하여, 배열을 정렬시켰는데 정말 고맙게도 Collections에 reverse가 있어 낼름가져다가 사용하였다. 위의 두 메소드를 이용하면 이번 문제는 쉽게 풀 수 있다. 사실상 공부만 조금 더 했다면 풀 수 있었던 문제! 누구나 처음엔 모를 수 있으니까 이번 문제풀이를 ..
같은 숫자는 싫어! 문제에도 나와있듯 배열안에 같은 숫자를 모두 지우는게 아니라, '연속적으로 나타나는' 숫자만 제거해주면 되는 문제이다. 처음에는 반복문을 하나만 쓸까 두개를 만들어서 쓸까 생각을 많이 해봤는데, 엄청 단순하게 배열로만 풀어야한다고 생각을해서 이중포문을 만들어서 문제를 풀려고 했으나, 진짜 도저히 풀 수가 없었다.. 아는게 그만큼인건지 애초에 푸는 방식이 잘못됐던건지 지금은 알 수 없지만 ㅠㅠ.. 결국 ArrayList를 사용해서 문제를 풀기로 했다. 실무에서 ArrayList를 본 적도 있고 내가 사용해본적도 있었는데, 알고리즘 문제를 풀면서 다시 쓰니까 느낌이 새로웠다. 해답을 보기전에 문제를 정리해보자면 이렇다. 숫자로만 이루어져있는 배열이 하나 있는데, 이 배열에서 연속된 숫자는..
위 문제는 자바의 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..
조건문을 활용하여 짝수일 때 "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 ..
프로그래머스 코딩테스트 연습 레벨1 문제중에 제일 쉬운 문제가 아닐까.. 싶은 문제 String형 배열 seoul에서 "Kim"의 위치를 찾으면 되는 간단한 문제! 보통 나같은 경우에는 문제를 IDE에서 먼저 풀어보고 결과가 의도한대로 나오면 웹 IDE로 옴기는데, 이번 문제 같은 경우에는 분명 맞게 푼 거 같은데 계속 오답이 나오길래 뭐지..? 했다 천천히 살펴보니 문제에서 이미 seoul이라는 배열을 제공해주고 있었다.. 가끔씩 급하게 하다가 실수를 하곤 하는데, 그 습관이 여기서도 나왔던 거 같다. 앞으로 천천히 문제부터 읽고, 정확히 어떤것을 해야하는지 정해놓고 코딩하는 습관을 길러야겠다. 실무에서도 마찬가지지만 어떤 과제가 주어지면 우선 급한대로 풀고보자라는 생각이 들어 고쳐야겠다고 생각은 했었..
· Blog
'아이패드..? 맥북도 있는데 나한테 필요한가?' '아이패드..? 누워서 넷플릭스나 볼 거 같은데.. 근데 티비보다 더 비싸' '아이패드.. 가지고 싶은데 너무 비싸다..' '아이패드.. 가지고 싶은데..?' '아이패드.. 가지고 싶다..' 살다살다 아이패드를 다시 사게될 줄은 몰랐다. 고등학생 때 갑자기 애플뽕에 빠져서 아이패드 미니를 구입하고 2~3년간 잘 사용했었다. 지금은 현존하는 아이폰 중에서 가장 큰 아이폰 12 Pro Max와 16인치 맥북을 제외하고 가장 큰 맥북 프로 15인치가 있는데 무슨 부귀영화를 누리자고 정확히 중간.. 어딘가의 애매한 사이즈 아이패드 12.9인치를 샀을까 그냥.. 소유욕이었나 아니면 친누나가 사용하는 아이패드가 그렇게 탐이 났던 걸까 여기저기 돌아다니면서 가장 싼 ..
헌일