반응형
Do it 자료구조와 함께 배우는 알고리즘 자바편 공부중
아래 코드가 생소해서 검색해보았다
String.format("%%%ds*\n", (i * 4) + 3), "");
String.format은 알고있었지만 %%% 이렇게 %가 세개가 있는 코드는 처음봤다.
검색해보니 %%가 format함수 안에서는 %로 인식된다고 한다.
만약 위에서 i가 2라면 i*4+3은 11이다.
%%%ds*\n 에서
먼저 %d에 우측에서 계산한 결과값을 넣으면
String.format("%%11s*\n, ""); 가 된다
논리적으로는 %11s*\n 와 같아진다.
즉 아무 글자도 없는 String인 ""를
11글자의 넓이에 맞춰서 형식을 맞춰준 후
*을 하나 찍어주고 엔터를 친다.
결과적으로 아래와 같은 모양으로 현재 위치를 *로 찍어주게된다
| 0 1 2 3 4
---+----------------------
| *
0| 2 4 6 8 9
|
| *
1| 2 4 6 8 9
|
| *
2| 2 4 6 8 9
|
| *
3| 2 4 6 8 9
|
8은 x[3]에 있습니다.
해당 소스코드
package chap03;
import java.util.Scanner;
// 선형 검색 (검색과정을 자세히 나타냄)
class SeqSearchEx_03_02 {
// 배열 a의 앞쪽 n개 요소에서 key와 같은 요소를 선형 검색 (보초법)
static int seqSearchEx(int[] a, int n, int key) {
System.out.print(" |");
for (int k = 0; k < n; k++)
System.out.printf("%4d", k);
System.out.println();
System.out.print("---+");
for (int k = 0; k < 4 * n + 2; k++)
System.out.print("-");
System.out.println();
for (int i = 0; i < n; i++) {
System.out.print(" |");
System.out.printf(String.format("%%%ds*\n", (i * 4) + 3), "");
System.out.printf("%3d|", i);
for (int k = 0; k < n; k++)
System.out.printf("%4d", a[k]);
System.out.println("\n |");
if (a[i] == key)
return i; // 검색성공
}
return -1; // 검색실패
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("요솟수:");
int num = stdIn.nextInt();
int[] x = new int[num]; // 요솟수 num인 배열
for (int i = 0; i < num; i++) {
System.out.print("x[" + i + "]:");
x[i] = stdIn.nextInt();
}
System.out.print("찾는 값:"); // 키 값을 입력 받음
int ky = stdIn.nextInt();
int idx = seqSearchEx(x, num, ky); // 배열 x에서 값이 ky인 요소를 검색
if (idx == -1)
System.out.println("그 값의 요소가 없습니다.");
else
System.out.println(ky + "은 " + "x[" + idx + "]에 있습니다.");
}
}
* 참고
what does %%s and %%ds mean with `format` function? : emacs (reddit.com)
반응형
'컴퓨터공학 > 자료구조&알고리즘' 카테고리의 다른 글
점근적 분석, 점근적 표기법, 시간 복잡도, 공간 복잡도 (0) | 2021.04.21 |
---|---|
점화식이란 (0) | 2021.04.21 |
[프로그래머스] 스택/큐 주식가격 JAVA 자바풀이 (0) | 2021.04.18 |
[프로그래머스] 깊이/너비 우선 탐색(DFS/BFS) (0) | 2021.04.17 |
[자료구조] 배열과 리스트 (0) | 2021.04.17 |
댓글