[백준] 빌런 호석 (Java)

2024. 12. 30. 21:11코딩테스트/백준
목차
  1. 링크
  2. 주의점
  3. 알고리즘 선택과 근거
  4. 접근 방식
  5. 디스플레이 표현
  6. 자릿수
  7. 정답

링크

https://www.acmicpc.net/problem/22251

 

주의점

  • 0층 제외

 

알고리즘 선택과 근거

  • 브루트포스
    • 모든 층을 다 봐야한다.
  • 구현
    • 디스플레이 구현

 

접근 방식

 

디스플레이 표현

디스플레이를 이렇게 표현했다.

 

1번이 켜져있으면 0010010 이렇게 표현한다.

 

3이면 1011011

 

자릿수

1. 최대 자릿수가 같을 때까지 현재 층이나 호석이 층이나 둘 다 0 계속 추가

2. 체크할 때 자릿수마다 바뀐 LED 수 체크

 

하면 된다.

 

정답


      
import java.io.*;
import java.util.*;
public class Main {
static String[] num = {"1110111", "0010010", "1011101",
"1011011", "0111010", "1101011",
"1101111", "1010010", "1111111",
"1111011"}; // 디스플레이를 숫자로 표현한 배열
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken()); // 최대 층
int K = Integer.parseInt(st.nextToken()); // 디스플레이에 표현되는 수
int P = Integer.parseInt(st.nextToken()); // 최대 반전 개수
int X = Integer.parseInt(st.nextToken()); // 현재 층
int answer = 0;
String cur = String.valueOf(X);
// 현재 디스플레이에 표현되는 수 만큼 0 채우기
while (cur.length() < K) {
cur = "0" + cur;
}
for (int i = 1; i <= N; i++) {
// 같은 층이면 건너 뛰기
if (i == X) {
continue;
}
// 호석이가 테스트 해 볼 층 수
String hoseock = String.valueOf(i);
// 빌런 디스플레이에 표현되는 수 만큼 0 채우기
while(hoseock.length() < K) {
hoseock = "0" + hoseock;
}
// 반전 수 체크하기 위한 변수
int cnt = 0;
// K 자리수 까지 돌기
for (int j = 0; j < K; j++) {
// 현재 j번째 Led
String curLed = num[cur.charAt(j) - '0'];
// 호석 j번째 Led
String hoLed = num[hoseock.charAt(j) - '0'];
// 현재랑 호석이랑 Led 바뀐 곳 체크
for (int k = 0; k < 7; k++) {
if (curLed.charAt(k) != hoLed.charAt(k)) {
cnt++;
}
}
}
// P보다 바뀐게 적다면 answer++;
if (cnt <= P) {
answer++;
}
}
System.out.println(answer);
}
}

 

저작자표시 (새창열림)

'코딩테스트 > 백준' 카테고리의 다른 글

[백준] 호석이 두 마리 치킨 (Java)  (2) 2025.01.04
[백준] 퇴사 (Java)  (0) 2024.12.11
[백준] 스타트와 링크 (Java)  (0) 2024.12.11
[백준] 일곱 난쟁이 (Java)  (0) 2024.11.11
  1. 링크
  2. 주의점
  3. 알고리즘 선택과 근거
  4. 접근 방식
  5. 디스플레이 표현
  6. 자릿수
  7. 정답
'코딩테스트/백준' 카테고리의 다른 글
  • [백준] 호석이 두 마리 치킨 (Java)
  • [백준] 퇴사 (Java)
  • [백준] 스타트와 링크 (Java)
  • [백준] 일곱 난쟁이 (Java)
wonow_
wonow_
꾸준히 성장하는 개발자 WONOW 입니다. 🤗
wonow_
wonow_
wonow_
전체
오늘
어제
  • 분류 전체보기
    • Language
      • JAVA
    • TIL
    • 코딩테스트
      • 프로그래머스
      • 백준
    • 프로젝트
      • JAVA
      • Spring
    • 기타
    • ERROR
      • Spring
    • CS
      • 알고리즘
      • DB
      • Kafka
    • 잡담
    • 활동
      • 척척박사

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 공부열심히하자
  • 오블완
  • 프로그래머스
  • 티스토리챌린지
  • 나는바봉가봉가
  • 홀짝 구분하기
  • 문자열 돌리기
  • 문자열 붙여서 출력하기
  • 티스토리 꾸미기

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
wonow_
[백준] 빌런 호석 (Java)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.