인프런 4. 단어뒤집기 (Java)

2022. 3. 10. 22:23·알고리즘/인프런_자바코테강의

첫 번째 풀이 (내 풀이)

public class Main {

    public void solution(String[] arr) {
        for (String s : arr) {
            System.out.println(new StringBuilder(s).reverse());
        }

    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Main T = new Main();
        int n = sc.nextInt();
        String[] arr = new String[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.next();
        }
        T.solution(arr);

    }
}

 

두 번째 풀이 (선상님 풀이)

 

public class Main2 {
    public ArrayList<String> solution(int n, String[] str) {
        ArrayList<String> answer = new ArrayList<>();
        for(String x : str) {
            String tmp = new StringBuilder(x).reverse().toString();
            answer.add(tmp);
        }
        return answer;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Main2 T = new Main2();
        int n = sc.nextInt();
        String[] str = new String[n];
        for (int i = 0; i < n; i++) {
            str[i] = sc.next();
        }
        for (String s : T.solution(n, str)) {
            System.out.println(s);
        }

    }
}

 

세 번째 풀이 

투포인터 같은 풀이 방법, 이런 풀이 방법을 많이 쓸려고 노력해야 할 듯 

public class Main3 {
    public ArrayList<String> solution(int n, String[] str) {
        ArrayList<String> answer = new ArrayList<>();
        // 특정문자만 뒤집을 때,
        for(String x : str) {
            char[] s = x.toCharArray();
            int lt = 0, rt = x.length()-1;
            while (lt<rt) { // 짝수길이일 경우 lt가 rt보다 커지므로 이때 종료함. 홀수길이는 같아짐
                char tmp = s[lt];
                s[lt] = s[rt];
                s[rt] = tmp;
                lt++;
                rt--;
            }
            String tmp = String.valueOf(s);
            answer.add(tmp);
        }

        return answer;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Main3 T = new Main3();
        int n = sc.nextInt();
        String[] str = new String[n];
        for (int i = 0; i < n; i++) {
            str[i] = sc.next();
        }
        for (String s : T.solution(n, str)) {
            System.out.println(s);
        }

    }
}

'알고리즘 > 인프런_자바코테강의' 카테고리의 다른 글

인프런 6. 중복 문자 제거 (Java)  (0) 2022.03.10
인프런 5. 특정 문자 뒤집기 (Java)  (0) 2022.03.10
인프런 3. 문장 속 단어 (Java)  (0) 2022.03.07
인프런 2. 대소문자 변환 (Java)  (0) 2022.03.07
인프런 1. 문자찾기 (Java)  (0) 2022.03.07
'알고리즘/인프런_자바코테강의' 카테고리의 다른 글
  • 인프런 6. 중복 문자 제거 (Java)
  • 인프런 5. 특정 문자 뒤집기 (Java)
  • 인프런 3. 문장 속 단어 (Java)
  • 인프런 2. 대소문자 변환 (Java)
고구마와 감자
고구마와 감자
Amor DevFati는 김연자-Amor Fati에 Development(개발)의 Dev 를 첨가하여 만든 이름
  • 고구마와 감자
    Amor DevFati(아모르 개발파티)
    고구마와 감자
  • 전체
    오늘
    어제
    • 분류 전체보기 (156)
      • Loopers 2기 (4)
      • 스프링 (5)
      • 알고리즘 (113)
        • 백준 (70)
        • 프로그래머스 (7)
        • 인프런_자바코테강의 (20)
        • 리트코드 (5)
        • 해커랭크 (0)
        • 코드업 (3)
        • 이것저것 (7)
      • 자바 (7)
      • GIT (0)
      • 파이썬 (1)
      • 개발이론 (4)
      • JPA (0)
      • 김영한 강의 (13)
        • 모든 개발자를 위한 HTTP 웹 기본 지식 (2)
        • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (6)
        • 스프링 핵심 원리 - 기본편 (5)
      • 일기 및 아무말 적기 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    더하기 3
    1247
    5988
    2857
    2의 제곱인가
    2921
    11966
    3059
    홀수일까 짝수일까
    그대로출력하기2
    11023
    Mini Fantasy War
    4458
    등장하지 않는 문자의 합
    14656
    백준
    스프링 핵심 원리
    첫 글자를 대문자로
    카이사르 암호
    꼬리를 무는 숫자 나열
    남욱이의 닭장
    10409
    할로윈의 사탕
    고려대학교에는 공식 와인이 있다
    조교는 새디스트야!!
    10178
    전투 드로이드 가격
    1598
    5361
    16673
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고구마와 감자
인프런 4. 단어뒤집기 (Java)
상단으로

티스토리툴바