BOJ 1076 - 저항

sally·2022년 1월 5일
0

알고리즘

목록 보기
2/5

boj

입력받은 값에 대한 1개 이상의 자료를 어떻게 관리할지 포인트 였다.

  • 10개 정도 되길래 Map.of() 초기화 방식을 이용하기로 했다.
    • Map은 조회시 O(1)이고, key값을 통해 찾기 좋아서 선호한다.
	private Map<String, int[]> resistance = Map.of("black", new int[] {0, 1},
		"brown", new int[] {1, 10},
		"red", new int[] {2, 100},
		"orange", new int[] {3, 1000},
		"yellow", new int[] {4, 10000},
		"green", new int[] {5, 100000},
		"blue", new int[] {6, 1000000},
		"violet", new int[] {7, 10000000},
		"grey", new int[] {8, 100000000},
		"white", new int[] {9, 1000000000});
  • 테스트 통과
    • String.format() 보다는 StringBuilder 가 더 좋을 것이다.
	@ParameterizedTest
	@MethodSource("providerParam")
	void test(String a, String b, String c, String expect) {
		int idxVal = 0;
		int idxMultiple = 1;

		int aVal = resistance.get(a)[idxVal];
		int bVal = resistance.get(b)[idxVal];
		long multiply = resistance.get(c)[idxMultiple];

		String numStr = String.format("%d%d", aVal, bVal);
		int num = Integer.parseInt(numStr);
		long result = num * multiply;

		assertEquals(String.valueOf(result), expect);
	}
profile
sally의 법칙을 따르는 bug Duck

0개의 댓글