lala9663
Bump into
lala9663
전체 방문자
오늘
어제
  • 분류 전체보기 (158)
    • JavaScript (1)
    • Java (39)
    • Spring (28)
    • IntelliJ (7)
    • Git,Github (2)
    • CS (22)
    • Algorithm (23)
      • Algorithm 문제 (13)
    • 공부방 (9)
    • 그 외 (27)
      • TIL (24)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 동적
  • 1193
  • jsp
  • Java
  • 백준 2292
  • 백준
  • try-catch
  • Get
  • 웹 3.0
  • Spring
  • 자바 람다
  • 정적
  • 스트림(Stream)
  • Intellij
  • Til
  • was
  • thread
  • 자바
  • Post
  • 웹서버
  • servlet
  • 백준 벌집

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
lala9663

Bump into

Algorithm/Algorithm 문제

[백준] 1919 애너그램 만들기 [Java]

2023. 5. 20. 01:51

https://www.acmicpc.net/problem/1919

 

1919번: 애너그램 만들기

두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs

www.acmicpc.net

 

간만에 백준에 들어가서 문제를 풀었다. 기본기를 다시 다져야겠다는 생각으로 풀었는데 단순하게 생각하면 매우 쉽게 풀리는 문제였다.

 

public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new java.io.InputStreamReader(System.in));

        String a = br.readLine();
        String b = br.readLine();

        int[] c = new int[26];
        int[] d = new int[26];

        for (int i = 0; i < a.length(); i++) {
            c[a.charAt(i) - 'a']++;
        }
        for (int i = 0; i < b.length(); i++) {
            d[b.charAt(i) - 'a']++;
        }
        int cnt = 0;
        for (int i = 0; i < 26; i++) {
            if(c[i] > d[i]){
                cnt += c[i] - d[i];
            } else if (c[i] < d[i]) {
                cnt += d[i] - c[i];
            }
        }
        System.out.println(cnt);
    }

이렇게 구현을 했지만 구현하고 생각해보니 조금 더 간단한 방법이 있었다.

if 문을 써서 c[i] 가 d[i] 보다 클때 작을때로 비교한 이유가 양수로 하기 위함이였다.


하지만 Math.abs 를 사용하면 절댓값을 반환 하는 역할이기 때문에

for (int i = 0; i < 26; i++) {
        cnt += Math.abs(c[i] - d[i]);
    }

 

이렇게 사용해도 될 것 같다.

'Algorithm > Algorithm 문제' 카테고리의 다른 글

[Leetcode] 118 Pascal's Triangle [Java]  (0) 2023.08.20
[백준] 3273 두 수의 합 [Java]  (0) 2023.05.24
[프로그래머스] 1차 보물지도 [Java]  (0) 2023.05.15
[백준] 10989 수 정렬하기 3 [Java]  (0) 2023.02.21
[백준] 2751 수 정렬하기 2[Java]  (0) 2023.02.21
    'Algorithm/Algorithm 문제' 카테고리의 다른 글
    • [Leetcode] 118 Pascal's Triangle [Java]
    • [백준] 3273 두 수의 합 [Java]
    • [프로그래머스] 1차 보물지도 [Java]
    • [백준] 10989 수 정렬하기 3 [Java]
    lala9663
    lala9663
    초보의 험난한 공부

    티스토리툴바