알고리즘 문제 풀이/다시 봐야할 것들
백준 - ACM 호텔(Java) 주기
가나무마
2022. 1. 29. 23:53
본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
https://github.com/ROUTINE-STUDY/Algorithm
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.
GitHub - ROUTINE-STUDY/Algorithm: 초보 알고리즘 스터디 / 누구나 참여 가능
초보 알고리즘 스터디 / 누구나 참여 가능 :runner:. Contribute to ROUTINE-STUDY/Algorithm development by creating an account on GitHub.
github.com
문의는 댓글 바람.
문제 출처 :https://www.acmicpc.net/problem/10250
[문제 설명]
문에 가까운 순서로 배정할 때, N번째 회원이 들어갈 방 번호는?
[접근 방법]
주기가 높이와 가로길이인 문제 단, 딱 떨어지는 경우를 체크해줘야한다.
시간복잡도는 테스트 케이스 개수인 O(T).
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cntOfTestcases = Integer.parseInt(br.readLine());
StringTokenizer st;
for (int idxOfTestcase = 0; idxOfTestcase < cntOfTestcases; idxOfTestcase++) {
st = new StringTokenizer(br.readLine(), " ");
int H = Integer.parseInt(st.nextToken());
int W = Integer.parseInt(st.nextToken());
int N = Integer.parseInt(st.nextToken());
int floor = N%H;
int noOfRoom = N/H+1;
if (floor == 0) {
floor = H;
noOfRoom--;
}
floor *= 100;
System.out.println(floor+noOfRoom);
}
}
}
[내 답안 수정하기]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cntOfTestcases = Integer.parseInt(br.readLine());
StringTokenizer st;
for (int idxOfTestcase = 0; idxOfTestcase < cntOfTestcases; idxOfTestcase++) {
st = new StringTokenizer(br.readLine(), " ");
int H = Integer.parseInt(st.nextToken());
int W = Integer.parseInt(st.nextToken());
int N = Integer.parseInt(st.nextToken())-1;
int floor = N%H;
int noOfRoom = N/H;
floor *= 100;
System.out.println(floor+noOfRoom+101);
}
}
}
나눌 인원수를 -1을 해줘서 나머지 처리를 편하게 하는 법.
예전에 이런 식으로 풀었던 거 같은데 이번엔 기억이 잘 안났다. 이거 잘 안까먹게 몇 번 더 봐야겠다.