본문 바로가기

전체 글

(162)
섹션1. 문자열 - 10. 가장 짧은 문자 거리 📌 문제 설명한 개의 문자열 s와 문자 t가 주어지면, 문자열 s의 각 문자가 문자 t와 떨어진 최소 거리를 출력하는 프로그램을 작성하세요.문자열 s와 문자 t는 소문자로만 구성됩니다.문자열 s의 길이는 최대 100입니다.📝 입력 & 출력🔹 입력첫 번째 줄: 문자열 s와 문자 t (공백으로 구분)🔹 출력첫 번째 줄: 각 문자에 대해 t와 떨어진 최소 거리를 출력 (공백으로 구분)🔸 예제 입력 1teachermode e🔸 예제 출력 11 0 1 2 1 0 1 2 2 1 0💡 해결 방법왼쪽에서 오른쪽으로 순회하면서 t와의 거리 계산p = 1000 (큰 값)으로 초기화 후, t가 나오면 p = 0으로 변경t가 아니면 p를 1씩 증가시키며 거리 계산오른쪽에서 왼쪽으로 순회하면서 최소 거리 갱신t가 ..
섹션 1. 문자열 - 9. 숫자만 추출 📌 문제 설명문자와 숫자가 섞여있는 문자열이 주어지면, 그중 숫자만 추출하여 자연수를 만드는 프로그램을 작성하세요.숫자는 원래 순서를 유지해야 합니다.추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.문자열 길이는 최대 100입니다.📝 입력 & 출력🔹 입력첫 번째 줄: 문자와 숫자가 섞인 문자열 (최대 길이 100)🔹 출력첫 번째 줄: 숫자만 추출하여 만든 자연수 출력🔸 예제 입력 1g0en2T0s8eSoft🔸 예제 출력 1208💡 해결 방법문자열을 순회하며 숫자만 추출 (Character.isDigit() 활용)숫자를 문자열로 연결한 후 Integer.parseInt()로 변환또는 answer = answer * 10 + (x - '0') 방식으로 변환💻 코드 구현 (Ja..
섹션 1. 문자열 - 8. 유효한 팰린드롬 📌 문제 설명앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬(Palindrome)이라고 합니다.문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 팰린드롬이 아니면 "NO"를 출력하는 프로그램을 작성하세요.팰린드롬 검사는 알파벳 문자만 고려하며, 대소문자를 구분하지 않습니다.알파벳 이외의 문자는 모두 제거해야 합니다.문자열 길이는 최대 100이며, 공백이 포함될 수 있습니다.📝 입력 & 출력🔹 입력첫 번째 줄: 공백 포함 문자열 (최대 길이 100)🔹 출력첫 번째 줄: "YES" 또는 "NO" 출력🔸 예제 입력 1found7, time: study; Yduts; emit, 7Dnuof🔸 예제 출력 1YES💡 해결 방법문자열에서 알파벳 이외의 문자 제거 (replaceAll("..
섹션 1. 문자열 - 7. 회문 문자열 📌 문제 설명앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열(Palindrome)이라고 합니다.문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 "NO"를 출력하는 프로그램을 작성하세요.회문 검사는 대소문자를 구분하지 않습니다.문자열 길이는 최대 100입니다.공백이 없는 문자열이 주어집니다.📝 입력 & 출력🔹 입력첫 번째 줄: 공백 없는 문자열 (최대 길이 100)🔹 출력첫 번째 줄: "YES" 또는 "NO" 출력🔸 예제 입력 1gooG🔸 예제 출력 1YES💡 해결 방법문자열을 대소문자 구분 없이 변환 (toUpperCase() 또는 equalsIgnoreCase())두 가지 방법으로 회문 검사StringBuilder.reverse() 사용 → ..
섹션 1. 문자열 - 6. 중복 문자 제거 📌 문제 설명소문자로 된 한 개의 문자열이 입력되면 중복된 문자를 제거하고, 중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지하는 프로그램을 작성하세요.문자열의 길이는 최대 100입니다.📝 입력 & 출력🔹 입력첫 번째 줄: 소문자로 된 문자열 (최대 길이 100)🔹 출력중복 문자가 제거된 문자열 출력🔸 예제 입력 1ksekkset🔸 예제 출력 1kset💡 해결 방법문자열을 순회하며 중복된 문자가 처음 등장한 위치인지 확인indexOf(x) == i를 활용하여 해당 문자가 처음 등장한 위치인지 검사첫 등장하는 문자만 최종 문자열에 추가문자열의 순서를 유지해야 하므로 Set 자료구조 대신 문자열을 직접 순회하는 방식 사용💻 코드 구현 (Java)package partString;im..
섹션 1. 문자열 - 5. 특정 문자 뒤집기 📌 문제 설명영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.문자열의 길이는 최대 100입니다.영어 알파벳과 특수문자가 포함될 수 있습니다.특수문자는 원래 위치를 유지해야 합니다.📝 입력 & 출력🔹 입력첫 번째 줄: 길이가 100을 넘지 않는 문자열 (영어 알파벳 + 특수문자 포함)🔹 출력첫 번째 줄: 알파벳만 뒤집힌 문자열 출력🔸 예제 입력 1a#b!GE*T@S🔸 예제 출력 1S#T!EG*b@a💡 해결 방법투 포인터(two-pointer) 알고리즘 활용lt (왼쪽)과 rt (오른쪽)에서 시작두 포인터가 알파벳을 찾으면 위치를 교환특수문자는 그대로 유지문자열을 문자 배열로 변환 (toC..
섹션 1. 문자열 - 4. 단어 뒤집기 📌 문제 설명N개의 단어가 주어지면, 각 단어를 뒤집어서 출력하는 프로그램을 작성하세요.첫 줄에 자연수 N(3 ≤ N ≤ 20)이 주어집니다.두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다.단어는 영어 알파벳으로만 구성됩니다.단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.📝 입력 & 출력🔹 입력첫 번째 줄: 자연수 N (3 ≤ N ≤ 20)두 번째 줄부터 N개의 단어가 주어짐.🔹 출력입력된 단어들을 뒤집어서 한 줄씩 출력.🔸 예제 입력 13goodTimeBig🔸 예제 출력 1doogemiTgiB💡 해결 방법문자열을 뒤집는 방법은 두 가지가 있음StringBuilder.reverse() 사용 → 가독성이 좋고 간결함투 포인터 알고리즘 활용 → 배열을 직접 조작하며 뒤집기N..
섹션 1. 문자열 - 3. 문장 속 단어 📌 문제 설명한 개의 문장이 주어지면, 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.단어는 공백으로 구분됩니다.문장의 길이는 최대 100입니다.문장은 영어 알파벳으로만 구성됩니다.가장 긴 단어가 여러 개일 경우, 앞쪽에 위치한 단어를 출력합니다.📝 입력 & 출력🔹 입력첫 번째 줄: 길이가 100을 넘지 않는 한 개의 문장 (영어 알파벳 + 공백 포함)🔹 출력첫 번째 줄: 가장 긴 단어 출력🔸 예제 입력 1it is time to study🔸 예제 출력 1study💡 해결 방법문장을 단어로 분리 (split(" ") 활용)각 단어의 길이를 비교하여 최장 단어 찾기길이가 같은 단어가 여러 개일 경우 앞에 나온 단어를 정답으로 선택💻 코드 구현 (Java)package part..