📑 1. 문제설명💡 2. 풀이과정1. 문자열을 공백을 기준으로 나눠 배열 str에 저장한다.2. 최종 결과 값을 저장할 sum 변수 선언3. 마지막으로 추가된 숫자를 저장할 lastNumber 변수 선언4. 배열을 순회하면서4-1. "Z"가 나오면 lastNumber를 sum에서 뺀다.4-2. 숫자가 나오면 lastNumber에 저장하고 sum에 더한다.5. 최종 sum을 반환한다.👨💻 3. 정답코드class Solution { public int solution(String s) { String[] tokens = s.split(" "); int sum = 0; int lastNumber = 0; for (String to..

My Tech Blog (코테)
오늘의 명언
📑 1. 문제설명💡 2. 풀이과정그냥 my_string 을 char[] 배열로 바꾸고 숫자인 것만 answer에 누적해서 더하면 되겠지 생각했다.class Solution { public int solution(String my_string) { int answer = 0; for (char c : my_string.toCharArray()) { if (Character.isDigit(c)) answer += c; } return answer; }} 제출한 실행결과랑 기댓값 차이가 많이 나는 걸로 봐서 아스키 코드 값이 더해진 거 같다. 👨💻 3. 정답코드class Solution { public int so..
📑 1. 문제설명💡 2. 풀이과정처음에 접근한 방식1. my_string을 toCharArray()로 char 타입의 배열로 변환2. for 문으로 배열 요소를 순회하면서 `Character.isDigit(c)` 메서드로 요소가 숫자이면 count++3. 2에서 나온 count 크기만큼의 int 배열을 선언한다. 4. for each문으로 다시 한 번 배열을 순회하면서 `Integer.parseInt(String.valueOf(c));` 로 숫자만 int 배열에 추가5. 오름차순 정렬 ⭐`Character.isDigit()`는 주어진 문자가 숫자(0~9)인지 확인하는 자바 메서드특정 문자가 숫자인지 아닌지를 판단하여, 숫자이면 true를 반환하고, 숫자가 아니면 false를 반환한다.⭐ `Inte..
📑 1. 문제설명 💡 2. 풀이과정그냥 매개변수로 받은 문자열을 toCharArray() 메서드로 배열로 변환한 뒤, 배열을 순환하며 모음이 아닐 때만 StringBuilder에 추가해주면 되는 간단한 문제이다. 단, 처음에 틀린 이유는c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u' 라는 조건을 설정할 때 and조건 대신 or연산자를 써서 틀렸다. or 연산자는 하나라도 true면 전체가 true가 되기 때문이다. 결국, 어떤 문자가 들어오든 항상 true가 돼서 모음을 걸러내지 못하고 모든 문자를 추가하는 문제가 발생한다.false || false || true || false || false → 결과: **true**👨💻 3. 정답코드..
📑 1. 문제설명 입출력 예letterresult".... . .-.. .-.. ---""hello" ".--. -.-- - .... --- -.""python" 💡 2. 접근방식주어진 모스부호를 morse.put() 으로 한 줄씩 해시맵에 추가 해야 한다는 부분이 귀찮은 문제이다. 1. HashMap을 이용해 모스부호와 알파벳을 키,값 쌍으로 저장하기2. split() 메서드로 문자열을 공백 기준으로 나누기3. StringBuilder로 문자열을 조합해서 반환⭐ 3. 정답코드import java.util.*; class Solution { public String solution(String letter) { Map morse = new HashMap(); // ..
📑 1. 문제설명💡 2. 접근방식매우 쉬운 문제이다. 예시에서 n이 20 일때 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return한다. 즉, n의 약수의 개수를 구하는 문제이다. 1부터 n까지 for문을 돌려 n%i가 0으로 떨어지면 카운트해서 answer에 누적한다. ⭐ 3. 정답코드class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i

코테 문제 풀 때 알고리즘이나 자료구조도 공부해야 하지만, 코드를 작성하는 방법도 중요하다.클린 코드를 작성하기 위해서는 아래 세 가지 습관을 들여야 한다.하루 아침에 코드 쓰는 습관이 바뀌지는 않겠지만 매번 코드를 작성할 때마다 이러한 습관을 염두에 두고 작성하다 보면 점차 클린 코드 작성 능력이 향상될 것이라고 기대한다. 1. 조기반환 (early return)조기 리턴(early return)은 조건이 충족되면 함수나 메서드에서 바로 결과를 반환하는 프로그래밍 기법이다. 이렇게 하면 불필요한 계산을 피하고 코드의 가독성을 높일 수 있다.예를 들어, totalPrice 함수에서 가격이 100을 초과하는 경우 바로 할인을 적용하고 결과를 반환하는 코드를 짤 때, 조기 리턴을 하지 않으면 할인 로직을 ..
📑 1. 문제설명💡 2. 풀이 과정일단 문제가 길어도 너무 길어서 나름대로 요약을 해 봤다. record 배열은 입장 또는 퇴장 정보를 담고 있는 2차원 배열이다. 입장은 ["Enter id 닉네임"] → "닉네임님이 들어왔습니다."퇴장은 ["Leave id"] → "닉네임님이 나갔습니다."닉변은 ["Change id 닉네임"]record0번 인덱스 = 행동(입장/퇴장/닉변)1번 인덱스 = id2번 인덱스 = 닉네임 여기서 중요한 것은 채팅방에 보여지는 메세지에는 최종적으로 변경된 닉네임이 보여져야 한다는 것이다. 그렇다면 한 아이디가 가장 마지막으로 사용한 닉네임이 무엇인지 조회하고 메세지를 보여줄 때 아이디값을 그 닉네임으로 바꾸는 방법으로 문제를 해결해야 한다. 닉네임 정보를 저장하기 위해서 ..