리우's IT Story
article thumbnail
728x90
반응형

 

피자 나눠먹기 1

https://school.programmers.co.kr/learn/courses/30/lessons/120814

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

 

	static int solution(int n) {
		// 피자 한판 = 7조각
		int pizzaSlice =7;
		// 피자한판
		int plate =1;
		int answer =1;
		// 회식총무가 피자가게에 가서 사람수를  센다. 사람수 n만큼 루프 
		for(int i =1; i<n; i++) {
			// 이 가게는 피자를 7조각 씩 잘라주네? 1조각이상은 먹게해야겠다. 
			// i가 7조각으로 나눠서 떨어지면 한판증가.
			// 1명있어도 1판 2명있어도 1판 7명있어도 1판, <= PLATE 기본값은 1판
			// 8명있으면? 2판 
			if(i % pizzaSlice ==0) {
				plate++;	
			}
		}
		answer= plate;
		
		return answer;
	}

 

 

 

이클립스 전체코드 , 컴파일 후 결과 

 

 

 

 


 

 

피자 나눠먹기 2

 

https://school.programmers.co.kr/learn/courses/30/lessons/120815

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

  • 입출력 예 
n result
6 1
10 5
4 2

 

 

 

풀이

처음 작성한 코드 

간단한문제라고 생각했으나,  1시간을 고민해도 생각대로 나오지 않았다.

 

6명이 모두 같은 조각을 먹는다고 해서  

피자 6조각과  피자 한판 수를 곱해서 사람수로 나눠서 0으로 나눠떨어지면 되지 않을까? 라고생각했다.   

 

public class Ex07 {
	static int solution(int n) {
		int plate =1;
		int pizzaSlice =6;
		int answer = 1;
		// 사람수를 샌다.  4명 
		for(int i =1; i<n; i++) {
			answer = (plate * pizzaSlice) % n;
            plate++;
		}
						
		return answer;
	}

	public static void main(String[] args) {
		int n =4;
		int result = solution(n);
		System.out.println(result);
	}
}

 

 

최종코드 

 

처음코드에서 생각은 맞았지만 조건식이 틀렸다. 

피자 슬라이스와 피자한판을 곱해서 사람수를 나눠서 0으로 떨어지지 않으면  피자 한판을 추가하는 것인데

실수로 0으로 나누어떨어지면 한 판을 증가해서 자꾸 원하는 결과가 나오지않았다. 

public class Ex07 {
	static int solution(int n) {
        int answer = 1;
        
        while( (6 * answer)%n != 0 ){
            answer++;            
        }
        return answer;
	}

	public static void main(String[] args) {
		int n =10;
		int result = solution(n);
		System.out.println(result);
	}
}

 

 

 

 

728x90
반응형
profile

리우's IT Story

@LRWoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!