본문 바로가기

반응형

IT

(235)
섹션 1. String(문자열)_11. 문자열 압축 문제 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오. 단 반복횟수가 1인 경우 생략합니다. 입력 첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다. 출력 첫 줄에 압축된 문자열을 출력한다. 입출력 예제 풀이 방식을 정리해보자. 메소드 구현으로 바로 넘어가보자. 입력받은 문자열에 빈 문자를 더한다. 그 이유는 i와 i+1 을 이용해서 앞뒤 문자열을 비교할건데, 맨 마지막 문자와 비교할 문자를 만들어주기 위해서이다. AB 라는 문자가 있을 때, B와 비교할 뒤에 문자가 없기 때문에 임의로 빈 문자를 넣어주는 것이다. cnt라는 변수를 1로 초기화한다. cnt는 중..
섹션 1. String(문자열)_10. 가장 짧은 문자거리 문제 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램을 작성하세요. 입력 첫 번째 줄에 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로만 주어집니다. 문자열의 길이는 100을 넘지 않는다. 출력 첫 번째 줄에 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력한다. 입출력 예제 풀이 방식을 정리해보자. 이번에는 메소드에 static을 사용하지 않고 객체 생성을 했다. static 사용이유는 다음과 같다. 전역적으로 쉽게 재사용하는 변수나 메소드를 사용할 때 주로 사용한다. 생성 후 클래스 호출이나 객체 생성 필요 없이 바로 사용할 수 있기 때문에 사용성이 좋다. 다만 메모리 자원을 할당해놓고 사용하는 것이기 때문에 너..
섹션 1. String(문자열)_9. 숫자만 추출 문제 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. 입력 첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다. 출력 첫 줄에 자연수를 출력합니다. 입출력 예제 풀이 방식은 총 3가지로, 다음과 같다. 1. replaceAll() 사용 2. 아스키코드 사용 3. isDigit() 사용 1. replaceAll 사용 문자열을 입력받고 메소드를 호출하는 코드를 작성한다. 메소드 구현으로 넘어가보자. 결과값을 자연수로 출력해야 하므로 int형으..
섹션 1. String(문자열)_8. 유효한 펠린드롬 문제 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다. 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요. 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳 이외의 문자들의 무시합니다. 입력 알파벳 이외의 문자들의 무시합니다. 출력 첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다. 입출력 예제 풀이 방식은 다음과 같다. 문자열로 입력받을 것이기에 nextLine() 을 사용하여 변수를 선언하고, 메소드를 호출한다. 바로 메소드 구현으로 넘어가보자. 디폴트 결과값을 NO로 설정한다. toUppcerCase() 를 통해 입력받은 문자열을 모두 대문자로 바꾼다. 다음으로 ..
섹션 1. String(문자열)_7. 회문 문자열 문제 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다. 문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요. 단 회문을 검사할 때 대소문자를 구분하지 않습니다. 입력 단 회문을 검사할 때 대소문자를 구분하지 않습니다. 출력 첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다. 입출력 예제 다음과 같이 두 가지 방식으로 풀어보았다. 1. toUpperCase 를 사용한다. 2. reverse, equalsIgnoreCase 를 사용한다. 1. toUpperCase 사용 문자열을 입력받고 메소드를 수행하는 코드를 main 에 작성한다. 이제 메소드를 구현해보자. 리턴값의 디폴트를 YES로 설정..
섹션 1. String(문자열)_6. 중복문자제거 문제 소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요. 중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다. 입력 첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다. 출력 첫 줄에 중복문자가 제거된 문자열을 출력합니다. 입출력 예제 풀이 방식은 다음과 같다. 입력받을 문자열과 메소드 출력하는 코드를 main에 작성한 후에 메소드를 구현해보자. 문자열의 길이만큼 for문을 돌며 작업을 수행한다. 코드 작성 전에 charAt(i) / i / indexOf(str.charAt(i)) 를 각각 System.out.println(); 찍어서 값을 확인했다. str.charAt(i) : 해당 문자 i : 문자의 인덱스 indexOf(str...
섹션 1. String(문자열)_5. 특정 문자 뒤집기 문제 영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요. 입력 첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다. 출력 첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다. 입출력 예제 처음에 문제를 보고 아스키코드를 사용해서 풀어야하나.. 하고 이것저것 건들어보다가 강의를 듣고 다시 풀어보았다. 풀이 방식은 다음과 같다. main에는 문자를 입력받고, 메소드를 수행하는 코드를 작성한다. 메소드를 구현해보자. 결과값을 담을 변수인 result를 선언한다. toCharArray() 를 이용해서 word에 입력된 문자열을 문자 하나씩 분리해서 문자 배열을 생성하도록 한다. toCharArray : 문자열을..
섹션 1. String(문자열)_4. 단어 뒤집기 문제 N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요. 입력 첫 줄에 자연수 N(3 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비(김태원)강의를 참고하여 작성하였습니다.