728x90
반응형
1부터 10,000까지 8이라는 숫자가 총 몇번 나오는지 카운트
- 8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
총 2가지 방법으로 문제 해결
package CodingTestLv2;
public class Number8Counting {
//1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
//8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
//(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
public static void main(String[] args) {
counting('8');
for(int i = 1; i <=10000; i++) {
counting2(i);
}
System.out.println(count);
System.out.println(808%10);
}
public static void counting(char ch){
int count = 0;
for(int i = 1; i <=10000; i++) {
String[] str = new String[i];
str[i-1] = (i + "");
for(int j = 0; j<str[i-1].length(); j++) {
if(str[i-1].charAt(j) == ch) {
count++;
}
}
}
System.out.println(count);
}
static int count = 0;
// static으로 count를 선언하지 않을 경우 count값이 counting2의 결과값이 초기화가 되어
// 원하는 값을 누적합 시킬 수 없다
public static void counting2(int num) {
if(num % 10 == 8) {
count++;
}
// 다시 메서드로 돌아가서 숫자가 10보다 작아질때까지 10으로 나눔
// 그 과정에서 %10을 하면 1자리수가 출력이되고 다시 10보다 클 경우에는 1자리수가 없어진
// 다음 2자리 수가 1자리 수가 되어서 8이 아닌지 맞는지 비교가 되는 코드
// else if를 사용하지 않는 이유는 num의 결과가 8이 맞더라도 아래의 결과가 실행되어야 하기 때문에 일반 if를 씀
if(num>10) {
counting2(num/10);
}
}
}
하위 디렉토리 파일 포함하여 디렉토리 안 특정 타입 파일 찾기
File API를 사용하여 하위 디렉토리가 존재 시 포함하여 검색하였고 파일 이름이 LIFT IS TOO SHORT이고 .txt 파일일 경우 아래와 같이 출력
- file의 타입이 폴더일경우에 재귀함수를 사용하여 폴더의 getAbsolutePath를 다시 대입해 그 하위 파일을 검색하였다
- 파일일 경우에는
출력값:
주소값: C:\workplace\java\previousfile\New22.1.8\TimPersonal\bin\LIFE IS TOO SHORT.txt
파일 이름: LIFE IS TOO SHORT.txt
주소값: C:\workplace\java\previousfile\New22.1.8\TimPersonal\LIFE IS TOO SHORT.txt
파일 이름: LIFE IS TOO SHORT.txt
주소값: C:\workplace\java\previousfile\New22.1.8\TimPersonal\src\LIFE IS TOO SHORT.txt
파일 이름: LIFE IS TOO SHORT.txt
총 파일 개수: 3
package CodingTestLv2;
import java.io.File;
public class FilePathContains {
static int count;
//A라는 디렉토리 하위에 있는 텍스트 파일(*.txt) 중에서
//LIFE IS TOO SHORT 라는 문자열을 포함하고 있는 파일들을 모두 찾을 수 있는 프로그램을 작성하시오.
//단, 하위 디렉토리도 포함해서 검색해야 함.
// path A는 아래로 가정
// C:\workplace\java\previousfile\New22.1.8\TimPersonal
// 임의로 LIFE IS TOO SHORT.txt 파일을 3개 숨겨놓음
public static void main(String[] args) {
filecheck("C:\\workplace\\java\\previousfile\\New22.1.8\\TimPersonal");
System.out.println("총 파일 개수: " + count);
}
static void filecheck(String pathA) {
File f = new File(pathA);
for(File flist : f.listFiles()) {
if(flist.isDirectory()) {
filecheck(flist.getAbsolutePath().toString());
// toString으로 매개변수에 들어갈 수 있도록 변환
}
else if(flist.isFile()) {
if(flist.getName().endsWith(".txt") && flist.getName().contains("LIFE")) {
count++;
System.out.println("주소값: "+flist.getAbsolutePath());
System.out.println("파일 이름: " + flist.getName());
}
}
}
}
}
728x90
반응형
'알고리즘 풀이 > Java' 카테고리의 다른 글
Level 2 코딩 문제풀이 - 짝수번째 숫자 치환 & 배수 특정 숫자 찾기 (0) | 2022.02.15 |
---|---|
Level 2 코딩 문제풀이 - 다음 입사 문제, 숫자 사이클 길이 (0) | 2022.02.10 |
겹치는 숫자 제거 & OX 프린트 & 버전 크기 비교 - 코딩 문제 풀이 (0) | 2022.01.28 |
피보나치 & 숫자곱셈 - 코딩 문제 풀이 (0) | 2022.01.27 |