코딩 테스트(43)
-
[코딩테스트연습] 코딩 기초 트레이닝 > Lv.0 정수를 나선형으로 배치하기
문제 설명 문제 풀이 가장 먼저 떠올랐던 아이디어는 각 행과 열을 지정해서 순서대로 입력해야 할 것 같았다. /* 1. 0번째 행: 1~n(n-1개)까지 순서대로 2. n-1번째 열: n~n+(n-1)개까지 순서대로 3. n-1번째 행: n+(n-1) ~ (n+(n-1))+(n-1)까지 역순으로 4. 0번째 열: (n+(n-1))+(n-1) ~ ((n+(n-1))+(n-1))+(n-1-1)까지 순서대로 5. ... */ 위 아이디어를 떠올려봤는데 너무 규칙성이 없어 보였다.. 하나하나 하드코딩하는 것 같아서, 왠지 이 방법이 아닌 것 같았다. 따라서 다른 아이디어를 계속 고민해 보았다! 두번째 아이디어는 인덱스와 숫자 사이에 규칙성이 있는지 확인해보기이다. 이를 확인하기 위해서는 각 인덱스별 숫자값을 써..
2024.03.09 -
[코딩테스트연습] 코딩테스트 입문 > Lv.0 자릿수 더하기
문제 설명 문제 풀이 주어진 숫자의 각 자릿수끼리 더한 값을 출력하는 것이다. 1. 숫자를 문자열로 바꾼다. 2. 문자열의 각 문자에 하나씩 접근해서 숫자로 바꾼다. 3. 바뀐 숫자를 모두 더해서 반환한다. 아래는 작성한 코드이다. class Solution { public int solution(int n) { int answer = 0; String num = Integer.toString(n); int numLength = num.length(); int i=0; while(numLength>=0){ answer += Integer.parseInt(num.charAt(i)); numLength--; i++; } return answer; } } 하지만.. 오류가 발생했다! /Solution.java..
2024.03.07 -
[코딩테스트연습] 코딩테스트 입문 > Lv.0 머쓱이보다 키 큰사람
문제 설명 문제 풀이 머쓱이의 키가 주어졌으니, 배열을 하나씩 돌면서 머쓱이의 키보다 큰 사람을 count하면 될 것이라고 생각했다. 아래는 작성한 코드이다. class Solution { public int solution(int[] array, int height) { int answer = 0; for(int i=0; i height) answer ++; } return answer; } } 근데 이렇게 문제를 풀면서 기록하다가 알게 된 사실이 있다.. 나는 참 for문을 좋아한다.. 배열이나 문자열 문제가 나오면 우선 for문을 넣어보고 생각하는 것 같다. 또, 대부분 for문으로 해결이 된다. 앞으로는 조금 더 다양하게 생각해보기로 하자! import java.util.Arrays; class ..
2024.03.07 -
[Java] Stringbuilder란?
배경 코딩 테스트 연습 문제를 풀어보면서, 다른 사람의 풀이를 보게 되었다. 그때 Stringbuilder를 사용해서 풀이를 한 것을 보았는데, Stringbuilder가 뭐지?라는 생각이 들었다. 처음 듣는 객체였다..! 그래서 구글에 간단하게 검색해 보았는데, String을 관련해서 다룰 때 잘 쓰이는 것 같았다. 또, String 객체로만 풀이할 때 발생하는 여러가지 메모리 문제도 해결해 줄 수 있을 것 같았다. 그래서 조금 더 자세하게 알아가보기로 하였다! 시작 그래서 Stringbuilder가 뭘까? 그 전에 String의 개념에 대해서 다시 확실하게 짚고 넘어가자. 1. Class String - java.lang String 클래스는 "abc"같은 character들의 연결을 나타낸다. St..
2024.03.07 -
[코딩테스트연습] 코딩테스트 입문 > Lv.0 배열 원소의 길이
문제 설명 문제 풀이 문자열을 담은 배열이 주어지고, 각 인덱스에 존재하는 문자열의 길이를 배열에 담아서 출력하면 된다. 처음 떠올린 생각은 아래와 같다! 1. 배열의 인덱스로 한 String씩 접근한다. 2. 가져온 String의 길이를 반환한다. 3. 길이를 다시 인덱스에 담는다. 그래서 한번 코드로 작성해 보았다. class Solution { public int[] solution(String[] strlist) { int[] answer = new int[strlist.length]; for(int i=0; i^
2024.03.07 -
[코딩테스트연습] 코딩테스트 입문> Lv.0 문자열 뒤집기
문제 설명 문제 풀이 갑자기 문자열을 인덱스로 가져올 수 있을 것이라는 파이썬같은 생각을 떠올려버렸다. 그래서 my_string[i]로 접근했는데 오류가 나와서 당황했다... class Solution { public String solution(String my_string) { String answer = ""; System.out.println(my_string[0]); return answer; } } /Solution.java:4: error: array required, but String found System.out.println(my_string[0]); ^ 1 error 그렇다면 String은 어떤 방식으로 한 글자씩 접근할 수 있을까? 바로 String 클래스에서 제공하는 charAt..
2024.03.07