ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Summer/Winter Coding(~2018)] μ˜μ–΄ λλ§μž‡κΈ° - level2
    곡뢀/μ•Œκ³ λ¦¬μ¦˜ 2022. 11. 25. 23:35
    728x90

    πŸ“λ¬Έμ œ μ„€λͺ… 

    1λΆ€ν„° nκΉŒμ§€ λ²ˆν˜Έκ°€ λΆ™μ–΄μžˆλŠ” nλͺ…μ˜ μ‚¬λžŒμ΄ μ˜μ–΄ λλ§μž‡κΈ°λ₯Ό ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ˜μ–΄ λλ§μž‡κΈ°λŠ” λ‹€μŒκ³Ό 같은 κ·œμΉ™μœΌλ‘œ μ§„ν–‰λ©λ‹ˆλ‹€.

    1. 1λ²ˆλΆ€ν„° 번호 μˆœμ„œλŒ€λ‘œ ν•œ μ‚¬λžŒμ”© μ°¨λ‘€λŒ€λ‘œ 단어λ₯Ό λ§ν•©λ‹ˆλ‹€.
    2. λ§ˆμ§€λ§‰ μ‚¬λžŒμ΄ 단어λ₯Ό λ§ν•œ λ‹€μŒμ—λŠ” λ‹€μ‹œ 1λ²ˆλΆ€ν„° μ‹œμž‘ν•©λ‹ˆλ‹€.
    3. μ•žμ‚¬λžŒμ΄ λ§ν•œ λ‹¨μ–΄μ˜ λ§ˆμ§€λ§‰ 문자둜 μ‹œμž‘ν•˜λŠ” 단어λ₯Ό 말해야 ν•©λ‹ˆλ‹€.
    4. 이전에 λ“±μž₯ν–ˆλ˜ λ‹¨μ–΄λŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
    5. ν•œ κΈ€μžμΈ λ‹¨μ–΄λŠ” μΈμ •λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    λ‹€μŒμ€ 3λͺ…이 λλ§μž‡κΈ°λ₯Ό ν•˜λŠ” 상황을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

    tank → kick → know → wheel → land → dream → mother → robot → tank

    μœ„ λλ§μž‡κΈ°λŠ” λ‹€μŒκ³Ό 같이 μ§„ν–‰λ©λ‹ˆλ‹€.

    • 1번 μ‚¬λžŒμ΄ μžμ‹ μ˜ 첫 번째 차둀에 tankλ₯Ό λ§ν•©λ‹ˆλ‹€.
    • 2번 μ‚¬λžŒμ΄ μžμ‹ μ˜ 첫 번째 차둀에 kick을 λ§ν•©λ‹ˆλ‹€.
    • 3번 μ‚¬λžŒμ΄ μžμ‹ μ˜ 첫 번째 차둀에 knowλ₯Ό λ§ν•©λ‹ˆλ‹€.
    • 1번 μ‚¬λžŒμ΄ μžμ‹ μ˜ 두 번째 차둀에 wheel을 λ§ν•©λ‹ˆλ‹€.
    • (계속 μ§„ν–‰)

    λλ§μž‡κΈ°λ₯Ό 계속 μ§„ν–‰ν•΄ λ‚˜κ°€λ‹€ 보면, 3번 μ‚¬λžŒμ΄ μžμ‹ μ˜ μ„Έ 번째 차둀에 λ§ν•œ tankλΌλŠ” λ‹¨μ–΄λŠ” 이전에 λ“±μž₯ν–ˆλ˜ λ‹¨μ–΄μ΄λ―€λ‘œ νƒˆλ½ν•˜κ²Œ λ©λ‹ˆλ‹€.

    μ‚¬λžŒμ˜ 수 nκ³Ό μ‚¬λžŒλ“€μ΄ μˆœμ„œλŒ€λ‘œ λ§ν•œ 단어 words κ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, κ°€μž₯ λ¨Όμ € νƒˆλ½ν•˜λŠ” μ‚¬λžŒμ˜ λ²ˆν˜Έμ™€ κ·Έ μ‚¬λžŒμ΄ μžμ‹ μ˜ λͺ‡ 번째 차둀에 νƒˆλ½ν•˜λŠ”μ§€λ₯Ό κ΅¬ν•΄μ„œ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

    μ œν•œ 사항

    • λλ§μž‡κΈ°μ— μ°Έμ—¬ν•˜λŠ” μ‚¬λžŒμ˜ 수 n은 2 이상 10 μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.
    • wordsλŠ” λλ§μž‡κΈ°μ— μ‚¬μš©ν•œ 단어듀이 μˆœμ„œλŒ€λ‘œ λ“€μ–΄μžˆλŠ” 배열이며, κΈΈμ΄λŠ” n 이상 100 μ΄ν•˜μž…λ‹ˆλ‹€.
    • λ‹¨μ–΄μ˜ κΈΈμ΄λŠ” 2 이상 50 μ΄ν•˜μž…λ‹ˆλ‹€.
    • λͺ¨λ“  λ‹¨μ–΄λŠ” μ•ŒνŒŒλ²³ μ†Œλ¬Έμžλ‘œλ§Œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
    • λλ§μž‡κΈ°μ— μ‚¬μš©λ˜λŠ” λ‹¨μ–΄μ˜ 뜻(의미)은 μ‹ κ²½ μ“°μ§€ μ•ŠμœΌμ…”λ„ λ©λ‹ˆλ‹€.
    • 정닡은 [ 번호, μ°¨λ‘€ ] ν˜•νƒœλ‘œ return ν•΄μ£Όμ„Έμš”.
    • λ§Œμ•½ μ£Όμ–΄μ§„ λ‹¨μ–΄λ“€λ‘œ νƒˆλ½μžκ°€ 생기지 μ•ŠλŠ”λ‹€λ©΄, [0, 0]을 return ν•΄μ£Όμ„Έμš”.

    μž…μΆœλ ₯ 예

    n words result
    3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3]
    5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0]
    2 ["hello", "one", "even", "never", "now", "world", "draw"] [1,3]

     

    μž…μΆœλ ₯ 예 μ„€λͺ…

     

    μž…μΆœλ ₯ 예 #1
    3λͺ…μ˜ μ‚¬λžŒμ΄ λλ§μž‡κΈ°μ— μ°Έμ—¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

    • 1번 μ‚¬λžŒ : tank, wheel, mother
    • 2번 μ‚¬λžŒ : kick, land, robot
    • 3번 μ‚¬λžŒ : know, dream, tank

    와 같은 μˆœμ„œλ‘œ 말을 ν•˜κ²Œ 되며, 3번 μ‚¬λžŒμ΄ μžμ‹ μ˜ μ„Έ 번째 차둀에 λ§ν•œ tankλΌλŠ” 단어가 1번 μ‚¬λžŒμ΄ μžμ‹ μ˜ 첫 번째 차둀에 λ§ν•œ tank와 κ°™μœΌλ―€λ‘œ 3번 μ‚¬λžŒμ΄ μžμ‹ μ˜ μ„Έ 번째 μ°¨λ‘€λ‘œ 말을 ν•  λ•Œ 처음 νƒˆλ½μžκ°€ λ‚˜μ˜€κ²Œ λ©λ‹ˆλ‹€.

     

    μž…μΆœλ ₯ 예 #2
    5λͺ…μ˜ μ‚¬λžŒμ΄ λλ§μž‡κΈ°μ— μ°Έμ—¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

    • 1번 μ‚¬λžŒ : hello, recognize, gather
    • 2번 μ‚¬λžŒ : observe, encourage, refer
    • 3번 μ‚¬λžŒ : effect, ensure, reference
    • 4번 μ‚¬λžŒ : take, establish, estimate
    • 5번 μ‚¬λžŒ : either, hang, executive

    와 같은 μˆœμ„œλ‘œ 말을 ν•˜κ²Œ 되며, 이 κ²½μš°λŠ” μ£Όμ–΄μ§„ λ‹¨μ–΄λ‘œλ§ŒμœΌλ‘œλŠ” νƒˆλ½μžκ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ [0, 0]을 return ν•˜λ©΄ λ©λ‹ˆλ‹€.

     

    μž…μΆœλ ₯ 예 #3
    2λͺ…μ˜ μ‚¬λžŒμ΄ λλ§μž‡κΈ°μ— μ°Έμ—¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

    • 1번 μ‚¬λžŒ : hello, even, now, draw
    • 2번 μ‚¬λžŒ : one, never, world

    와 같은 μˆœμ„œλ‘œ 말을 ν•˜κ²Œ 되며, 1번 μ‚¬λžŒμ΄ μžμ‹ μ˜ μ„Έ 번째 차둀에 'r'둜 μ‹œμž‘ν•˜λŠ” 단어 λŒ€μ‹ , n으둜 μ‹œμž‘ν•˜λŠ” nowλ₯Ό λ§ν–ˆκΈ° λ•Œλ¬Έμ— μ΄λ•Œ 처음 νƒˆλ½μžκ°€ λ‚˜μ˜€κ²Œ λ©λ‹ˆλ‹€.

     

     

     

     πŸ”Ž 처음 μƒκ°ν•œ 아이디어  

    ν˜„μž¬ λ§ν•œ μ‚¬λžŒμ€ index % n+1 둜 μ•Œ 수 있고, λͺ‡ 번째 ν„΄μΈμ§€λŠ” index/2+1둜 μ•Œ 수 μžˆλ‹€.

    μ€‘λ³΅λœ 단어가 μžˆλŠ”μ§€, μ•žμ˜ λ‹¨μ–΄μ˜ 끝 κΈ€μžμ™€ ν˜„μž¬ λ‹¨μ–΄μ˜ 첫 κΈ€μžκ°€ κ°™μ€μ§€λ§Œ 확인해주면 μ‰½κ²Œ ν’€λ¦¬λŠ” 문제

     

     βœοΈ μž‘μ„±ν•œ μ½”λ“œ 

    package summer_winter_coding;
    
    import java.util.ArrayList;
    
    public class μ˜μ–΄λλ§μž‡κΈ° {
    
    
    	public int[] solution(int n, String[] words) {
    		
    		int[] answer = new int[2];
    		ArrayList<String> strList = new ArrayList<>();
    
    		for (int i = 1; i < words.length; i++) {
    
    			strList.add(words[i - 1]);
    			
    			char last = words[i - 1].charAt(words[i - 1].length() - 1); // λκΈ€μž
    			
    			if (words[i].charAt(0) != last || strList.contains(words[i])) {
    		
    				answer[0] = i % n + 1;
    				answer[1] = i / n + 1;
    				return answer;
    			}
    
    		}
    
    		return answer;
    	}
    }
    
    /*
     * μ •ν™•μ„± ν…ŒμŠ€νŠΈ
     * ν…ŒμŠ€νŠΈ 1 〉 톡과 (0.03ms, 70.7MB)
     * ν…ŒμŠ€νŠΈ 2 〉 톡과 (0.05ms, 77.1MB)
     * ν…ŒμŠ€νŠΈ 3 〉 톡과 (0.02ms, 76.9MB)
     * ν…ŒμŠ€νŠΈ 4 〉 톡과 (0.04ms, 73.9MB)
     * ν…ŒμŠ€νŠΈ 5 〉 톡과 (0.10ms, 76.2MB)
     * ν…ŒμŠ€νŠΈ 6 〉 톡과 (0.04ms, 75.7MB)
     * ν…ŒμŠ€νŠΈ 7 〉 톡과 (0.04ms, 85MB)
     * ν…ŒμŠ€νŠΈ 8 〉 톡과 (0.02ms, 74MB)
     * ν…ŒμŠ€νŠΈ 9 〉 톡과 (0.04ms, 73MB)
     * ν…ŒμŠ€νŠΈ 10 〉 톡과 (0.15ms, 81.1MB)
     * ν…ŒμŠ€νŠΈ 11 〉 톡과 (0.13ms, 71.7MB)
     * ν…ŒμŠ€νŠΈ 12 〉 톡과 (0.05ms, 76.9MB)
     * ν…ŒμŠ€νŠΈ 13 〉 톡과 (0.05ms, 76.4MB)
     * ν…ŒμŠ€νŠΈ 14 〉 톡과 (0.05ms, 73.9MB)
     * ν…ŒμŠ€νŠΈ 15 〉 톡과 (0.05ms, 73.3MB)
     * ν…ŒμŠ€νŠΈ 16 〉 톡과 (0.02ms, 76.3MB)
     * ν…ŒμŠ€νŠΈ 17 〉 톡과 (0.04ms, 72.3MB)
     * ν…ŒμŠ€νŠΈ 18 〉 톡과 (0.06ms, 75.8MB)
     * ν…ŒμŠ€νŠΈ 19 〉 톡과 (0.04ms, 74.9MB)
     * ν…ŒμŠ€νŠΈ 20 〉 톡과 (0.36ms, 71.2MB)
     * 채점 κ²°κ³Ό
     * μ •ν™•μ„±: 100.0
     * 합계: 100.0 / 100.0
     */

     

     

     

     

     

     

     

    λŒ“κΈ€

Designed by Tistory.