인프런 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바