본문 바로가기

Algorithm/Leet Code

[LeetCode] 202. Happy Number (TDD, 코테, 릿코드, tech interview)

간만에 문제풀이

 

- 테스트코드

import static org.assertj.core.api.Assertions.assertThat;

import org.junit.jupiter.api.Test;

public class LeetCode_0202_HappyNumberTest {

    @Test
    public void isHappyTest() {
        LeetCode_0202_HappyNumber test = new LeetCode_0202_HappyNumber();

        assertThat(test.isHappy(19)).isEqualTo(true);
        assertThat(test.isHappy(2)).isEqualTo(false);
    }

}

 

- 풀이코드

import java.util.HashSet;
import java.util.Set;

public class LeetCode_0202_HappyNumber {

    boolean isHappy(int n) {
        int sumOfSquaresOfDigits = n;

        Set<Integer> set = new HashSet<>();

        while (sumOfSquaresOfDigits != 1 && !set.contains(sumOfSquaresOfDigits)) {
            set.add(sumOfSquaresOfDigits);

            sumOfSquaresOfDigits = getSumOfSquaresOfDigits(sumOfSquaresOfDigits);
        }

        return (sumOfSquaresOfDigits == 1);
    }

    private int getSumOfSquaresOfDigits(int number) {
        int sum = 0;

        while (number > 0) {
            sum += Math.pow((number % 10), 2);
            number /= 10;
        }

        return sum;
    }

}

 

2021.12.28 - [Programming] - Effective Java 2/E, 이펙티브 자바 책 핵심요약

 

Effective Java 2/E, 이펙티브 자바 책 핵심요약

전체 목차 Github https://github.com/itdar/TIL/blob/main/books/effective_java/effective_java.md GitHub - itdar/TIL: Today I Learned Today I Learned. Contribute to itdar/TIL development by creating an..

itdar.tistory.com