๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers lv-1

๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ - Java [์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต]

by ๊ทคํ”ผํ‚ค 2022. 12. 12.

 

โค๏ธ Problem

๋”๋ณด๊ธฐ
  • ๋ฌธ์ œ
    ๋ฌธ์ž์—ด๋กœ ๊ตฌ์„ฑ๋œ ๋ฆฌ์ŠคํŠธ strings์™€, ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ ๋ฌธ์ž์—ด์˜ ์ธ๋ฑ์Šค n๋ฒˆ์งธ ๊ธ€์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด strings๊ฐ€ ["sun", "bed", "car"]์ด๊ณ  n์ด 1์ด๋ฉด ๊ฐ ๋‹จ์–ด์˜ ์ธ๋ฑ์Šค 1์˜ ๋ฌธ์ž "u", "e", "a"๋กœ strings๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ œํ•œ ์‚ฌํ•ญ
    • strings๋Š” ๊ธธ์ด 1 ์ด์ƒ, 50์ดํ•˜์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
    • strings์˜ ์›์†Œ๋Š” ์†Œ๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
    • strings์˜ ์›์†Œ๋Š” ๊ธธ์ด 1 ์ด์ƒ, 100์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
    • ๋ชจ๋“  strings์˜ ์›์†Œ์˜ ๊ธธ์ด๋Š” n๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.
    • ์ธ๋ฑ์Šค 1์˜ ๋ฌธ์ž๊ฐ€ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ์—ฌ๋Ÿฟ ์ผ ๊ฒฝ์šฐ, ์‚ฌ์ „์ˆœ์œผ๋กœ ์•ž์„  ๋ฌธ์ž์—ด์ด ์•ž์ชฝ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no strings n result
1 ["sun", "bed", "car"] 1 ["car", "bed", "sun"]
2 ["abce", "abcd", "cdx"] 2 ["abcd", "abce", "cdx"]
  1. "sun", "bed", "car"์˜ 1๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์€ ๊ฐ๊ฐ "u", "e", "a" ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ strings๋ฅผ ์ •๋ ฌํ•˜๋ฉด ["car", "bed", "sun"] ์ž…๋‹ˆ๋‹ค.
  2. "abce"์™€ "abcd", "cdx"์˜ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์€ "c", "c", "x"์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ •๋ ฌ ํ›„์—๋Š” "cdx"๊ฐ€ ๊ฐ€์žฅ ๋’ค์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. "abce"์™€ "abcd"๋Š” ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด "abcd"๊ฐ€ ์šฐ์„ ํ•˜๋ฏ€๋กœ, ๋‹ต์€ ["abcd", "abce", "cdx"] ์ž…๋‹ˆ๋‹ค.

 


 

๐Ÿ’› Solution

ํ’€์ด

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    public String[] solution(String[] strings, int n) {
        ArrayList<String> sorting = new ArrayList<String>();
        for(int i=0; i<strings.length; i++) {
            sorting.add(strings[i].charAt(n)+strings[i]);
        }
        Collections.sort(sorting);

        for(int i=0; i<sorting.size(); i++) {
        	strings[i] = sorting.get(i).substring(1);
        }
        return strings;
    }
}

 

์ฒ˜๋ฆฌ์†๋„ SO BAD๐Ÿ˜…


 


 

๐Ÿ’œ Comment

์ฒ˜์Œ์—๋Š” ๋ฒ„๋ธ”์ •๋ ฌ ๋ฐฉ์‹์„ ์ด์šฉํ•ด์„œ ์ˆ˜์ž‘์—…์œผ๋กœ String[] ๋ฐฐ์—ด์„ ์ •๋ ฌ์‹œ์ผฐ๋‹ค. Array.sort();๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์› ๋ฐฐ์—ด์„ ์ •๋ ฌ์‹œํ‚จ ๋‹ค์Œ์— ๋น„๊ตํ•ด์„œ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ์งฐ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์ž˜ ํ†ต๊ณผํ–ˆ๋Š”๋ฐ ์ฝ”๋“œ๋ฅผ ์ œ์ถœํ•˜๋ฉด ์ž๊พธ ์‹คํŒจ๊ฐ€ ๋œจ๋Š” ๊ฒŒ ์•„๋‹Œ๊ฐ€๐Ÿ˜‚

์›์ธ์„ ๋„๋ฌด์ง€ ์ฐพ์ง€ ๋ชปํ•ด์„œ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ ‘๊ทผํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ถ”์ธกํ•˜๊ฑด๋Œ€ ๋งˆ์ง€๋ง‰ ์ œํ•œ์กฐ๊ฑด์„ ์ถฉ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•œ ๋“ฏ ์‹ถ์—ˆ๋‹ค. (์ธ๋ฑ์Šค 1์˜ ๋ฌธ์ž๊ฐ€ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ์—ฌ๋Ÿฟ ์ผ ๊ฒฝ์šฐ, ์‚ฌ์ „์ˆœ์œผ๋กœ ์•ž์„  ๋ฌธ์ž์—ด์ด ์•ž์ชฝ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.)

๊ทธ๋ž˜์„œ ๋‚˜๋ฆ„ ๊ผผ์ˆ˜๋ฅผ ์จ์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ๊ฒฐ๊ตญ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž์—ด์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ๊ทธ ๋‹จ์–ด์˜ ์‚ฌ์ „ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๋ง์ด๊ธฐ ๋•Œ๋ฌธ์—, for ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž(strings[i].charAt(n))์™€ ์› ๋‹จ์–ด๋ฅผ ํ•ฉ์นœ ๋ฌธ์ž์—ด(strings[i])์„ ArrayList์— ๋„ฃ์—ˆ๋‹ค. ๊ทธ ๋‹ค์Œ, Collection.sort();๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ •๋ ฌํ•˜์˜€๋‹ค.

์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด strings[i].charAt(n)๊ฐ€ ๋™์ผํ•ด๋„ ๋’ค์— ๋ถ™์–ด์žˆ๋Š” ์›๋‹จ์–ด์˜ ์‚ฌ์ „ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ •๋ ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋‹ค๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ String[] ๋ฐฐ์—ด์— ArrayList์˜ ๊ฐ’์„ ๋„ฃ์„ ๋•Œ strings[i].charAt(n)๋ฅผ substring();์œผ๋กœ ์ œ๊ฑฐํ•˜๊ณ  ๋„ฃ์–ด์ฃผ๋ฉด ๋!

์ฒ˜๋ฆฌ ์†๋„๋Š” ๋น„๋ก ๋Š๋ฆฌ์ง€๋งŒ ํ•ด๊ฒฐํ–ˆ๋‹ค๋Š” ์ ์— ์˜์˜๋ฅผ ๋‘์—ˆ๋‹ค. ์‹œ๊ฐ„์ด ๋‚˜๋ฉด ์ข€ ๋” ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œ์ผœ์•ผ๊ฒ ๋‹ค.

 

 

WOW 2์ ๐Ÿ˜† 9128์œ„

 

 

 

 

 

๋Œ“๊ธ€