본문 바로가기

코드30

JUnit5를 이용하여 Java 테스트 코드 작성하기 (JUnit5 기준 작성) 자주 사용하는 assert 관련 method assertTure assertFalse assertEquals assertNotEquals assertThrowsExactly assertInstanceOf assertThrowsExactly example assertThrows(ExpectedException.class, () -> Method to test); 다른 bean과 의존 관계 있는 경우 Mock 사용 class ServiceTest { private AutoCloseable openMocks; private Service service; @Mock private OtherService otherService; @BeforeEach void setUp() { openM.. 2022. 12. 22.
[안드로이드] 커스텀 폰트 적용하기 (Android Custom Font) 뷰를 짜다보면 시스템 기본 폰트가 아니라 커스텀 폰트를 적용해야할때가 있죠❗️커스텀 폰트를 적용하는 방법은 아주 간단하답니다.우선 적용하고 싶은 폰트와 안드로이드 프로젝트를 준비해주세요.저는 notosans를 넣어보겠습니다.1. res 아래에 font 디렉토리를 생성합니다. 2. 폰트 파일을 복사해서 넣어줍니다.폰트 파일 형식은 ttf와 otf가 있죠?윈도우는 ttf, 맥은 otf를 사용하는데, 그러다보니까 안드로이드에서도 ttf를 사용해야한다고 생각하는 경우가 많습니다하지만 안드로이드에서는 otf를 사용하는 것이 더 좋습니다.우선 안드로이드에 ttf, otf 모두 적용이 가능한데 둘을 비교했을 때 폰트 크기가 작은 경우에 otf 형식이 더 보기좋게 그려진다고 합니다.또한, otf의 파일 사이즈가 ttf.. 2020. 5. 26.
[BOJ] 15829. Hashing 백준 온라인 저지에 있는 15829번 Hashing 문제 풀이입니다. 문제: https://www.acmicpc.net/problem/15829 처음에는 31^i를 구하는 부분에서 pow(31, i)를 썼더니 부분 점수를 받았습니다. L이 커졌을 때 pow(31, i) 부분 때문에 시간복잡도가 엄청나게 커졌나봐요. 31^i는 1, 31, 31*31, 31*31*31 ... 이라서 이전 31^i에 31을 한번 더 곱하기만 하면 되는데 괜히 필요없는 함수를 호출하면서 시간복잡도를 크게 만들어버렸어요... 그래서 아래와 같이 바꿨더니 전체 정답이 되었습니다! 중복되는 부분, 생략할 수 있는 부분을 고민하면서 짜야하는데 나름 신경쓰다가도 생각없이 짤 때가 있네요... 반성해야겠습니다. 🤧 ❗️중복되는 부분, 생.. 2020. 5. 1.
[BOJ] 11050. 이항 계수 1 백준 온라인 저지에 있는 11050번 이항 계수 1 문제 풀이입니다. 주어지는 자연수 N과 K에 대한 이항 계수를 구하는 문제입니다. 이항 계수란 N개의 수 중에서 K개를 고르는 경우의 수로 아래와 같이 구하면 되는데요. 딱 보고 떠오르는 생각은 각각의 팩토리얼을 구해서 계산하면 되겠네~ 였습니다. 여기서❗️ 줄일 수 있는 중복되는 부분이 있는데요. 팩토리얼이 1부터 N까지를 차례대로 곱한 수이잖아요. 그리고 n-k와 k는 둘다 N보다 작을 것이구요. 그럼 둘중에 하나는 계산을 생략하고 n!에 바로 나눠줬다고 생각하면 중복되는 부분이 줄어들겠더라구요. 글로 이해가 잘 안가실수도 있어서 예제에 있는 숫자로 예를 들어보면 N=5, K=2의 이항계수는 5*4*3*2*1 / (3*2*1)*(2*1) 이런식이 됩.. 2020. 5. 1.