[코딩테스트 입문] 문자열 처리 – mode 토글 문제 풀이
·
코딩테스트
📌 문제문자열 code가 주어질 때 "1"을 만나면 mode가 변경된다.초기 mode = 0이며 문자열을 앞에서부터 읽으면서 다음 규칙으로 ret 문자열을 만든다.mode = 0"1"이 아니고 idx가 짝수일 때 문자 추가"1"이면 mode = 1로 변경mode = 1"1"이 아니고 idx가 홀수일 때 문자 추가"1"이면 mode = 0으로 변경마지막에 ret이 빈 문자열이면 "EMPTY"를 return 한다.🤔 내가 헷갈렸던 부분1️⃣ 문자 비교 (char)처음에는 이렇게 작성했다.code.charAt(idx) != 1 하지만 charAt()은 char 타입을 반환한다.Java에서 1 → 숫자 (int) '1' → 문자 (char) "1" → 문자열 (String) 그래서 문자 비교는 **'1'..
[코딩테스트 입문] 컨트롤 제트 ★★
·
코딩테스트
🔹 문제 설명공백으로 구분된 문자열 s에는 숫자와 "Z"가 담겨 있습니다.숫자는 모두 더합니다."Z"는 직전에 더한 숫자를 되돌리는 역할을 합니다.결과적으로 모든 숫자 합에서 "Z"에 해당하는 값들을 취소한 값을 구하세요. 🔸 제한사항 요약1 ≤ s의 길이 ≤ 200정수: -1000 ~ 1000"Z"는 숫자 바로 뒤에만 나옴연속된 "Z" 없음, "Z"로 시작하지 않음"Z"가 나오면 앞에 반드시 숫자가 존재 ✅ 즉, "Z" 앞에는 반드시 숫자가 있어 list[i - 1] 접근도 안전하게 가능 ✅ 내가 처음 쓴 코드class Solution { public int solution(String s) { String[] list = s.split(" "); int answer ..
[코딩테스트 입문] 소인수분해 - 배열과 리스트, 차이부터 정복하기!
·
코딩테스트
🔹 문제 설명소인수분해란 어떤 수를 소수의 곱으로 나타내는 것입니다.예를 들어 12 = 2 * 2 * 3, 따라서 소인수는 [2, 3]입니다. 🔸 입력 / 출력 예n반환값12[2, 3]17[17]420[2, 3, 5, 7] 🧠 내가 생각한 풀이 흐름2부터 n까지 나눠보며 나눠떨어지면 소인수로 간주중복은 제거해야 하니 while(n % i == 0)로 여러 번 나누기소인수만 저장해서 배열로 리턴 🤯 여기서 내가 헷갈린 부분❗ 문제 1: 배열 크기를 미리 몰라서 어떻게 배열을 만들지 모르겠음→ 자바에선 이럴 땐 List(리스트) 를 쓰면 됨!❗ 문제 2: 리스트를 만들고 나서 배열처럼 접근 (list[i])→ 자바에서 리스트는 list.get(i) 사용해야 함❗ 문제 3: length, add() 등..
🎤 토익스피킹, 겁먹지 말고 시작하자!
·
카테고리 없음
보호되어 있는 글입니다.
[코딩테스트 입문] 중복된 문자 제거 – StringBuilder, HashSet 기초까지 정리! ★★★
·
코딩테스트
🔹 문제 설명주어진 문자열 my_string에서 중복된 문자를 제거하고,처음 등장한 문자만 남긴 문자열을 만들어야 해요. 🔸 제한사항문자열 길이: 1 ~ 110대문자, 소문자, 공백 모두 허용대소문자 구분 (A ≠ a)공백도 문자로 취급 🔸 입출력 예my_string결과"people""peol""We are the world""We arthwold" ✅ 문제 풀이 흐름문자열을 왼쪽부터 하나씩 확인처음 본 문자면 결과에 추가이미 나온 문자면 무시 ✨ 필요한 도구 (자료구조)🧡 1. StringBuilder란?문자열을 빠르게 이어붙이는 도구왜 필요할까?String은 매번 새로운 문자열을 만들어서 느림StringBuilder는 계속 이어붙여도 빠름!기본 사용법:StringBuilder sb = new ..
[코딩테스트 입문] 공 던지기
·
코딩테스트
🔹 문제 설명머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다.공은 1번부터 던지며, 오른쪽으로 한 명 건너뛰고 그 다음 사람에게 던집니다.정수 배열 numbers 와정수 k 가 주어질 때,k번째로 공을 던질 차례인 사람의 번호를 return 하세요! 🔸 제한사항2 0 numbers 배열은 1번부터 차례로 번호가 들어있다배열은 원형 구조 (끝나면 다시 처음으로 이어짐) 🔸 입출력 예numbersk결과[1,2,3,4]23[1,2,3,4,5,6]53[1,2,3]32 ✅ 내가 처음 생각한 방법 (for문)"공을 한 번 던질 때마다 2칸 이동하는데,k번 던질 때까지 계속 2칸씩 이동해야겠다!"그래서 처음에는 for문으로 반복하려고 생각했다.int idx = 0;for (int i = 0; i..
[코딩테스트 입문] 숫자 찾기 – 문자열 indexOf로 한 줄 해결! ★
·
코딩테스트
🔹 문제 설명정수 num 안에 정수 k가 포함되어 있는지 확인하고,처음 나타나는 위치(1부터 시작)를 return하는 문제예요.못 찾으면 -1을 return! 🔸 입출력 예numk결과2918313232443441234567-1 ✅ 해결 방법🧠 핵심 아이디어숫자는 문자처럼 다루면 쉽다!String.valueOf(num) 으로 문자열로 바꾸고indexOf()로 위치만 찾으면 끝! ✅ 최종 코드class Solution { public int solution(int num, int k) { String str = String.valueOf(num); // 숫자 → 문자열 int idx = str.indexOf(String.valueOf(k)); // k를 문자..
[코딩테스트 입문] 인덱스 바꾸기
·
코딩테스트
🔸 문제 설명문자열 my_string에서num1번째 문자와 num2번째 문자의 위치를 바꾼 문자열을 반환하는 문제입니다. 🔸 입출력 예my_stringnum1num2결과"hello"12"hlelo""I love you"36"I l veoyou" ✅ 기본 풀이 아이디어자바의 String은 수정이 불가능(immutable) 하기 때문에문자열을 char[]로 바꿔서 → 문자를 바꾸고 → 다시 문자열로 만들어야 함그래서 순서는 이렇게:1. 문자열 → 문자 배열 (toCharArray)2. 문자 교환3. 문자 배열 → 문자열 (String.valueOf) ✅ 1. 처음 작성한 버전 (원래 버전)class Solution { public String solution(String my_string, int ..
summ.n
이것저것