๐Ÿญ์•Œ๊ณ ๋ฆฌ์ฆ˜ Algorithm ๊ณต๋ถ€ 1์ผ์ฐจ

๊น€ํƒœ์ธยท2022๋…„ 7์›” 20์ผ
0

์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ชฉ๋ก ๋ณด๊ธฐ
1/9

๐Ÿค–ย ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?

  • ์–ด๋–ค ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ์„ ์œ„ํ•˜์—ฌ, ์ž…๋ ฅ๋œ ์ž๋ฃŒ๋ฅผ ํ† ๋Œ€๋กœ ์›ํ•˜๋Š” ์ถœ๋ ฅ์„ ์œ ๋„ํ•˜์—ฌ ๋‚ด๋Š” ๊ทœ์น™์˜ ์ง‘ํ•ฉ
  • ์—ฌ๋Ÿฌ ๋‹จ๊ณ„ ์œ ํ•œ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š”๋ฐ, ๊ฐ ๋‹จ๊ณ„๋Š” ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ์—ฐ์‚ฐ์„ ํ•„์š”๋กœ ํ•œ๋‹ค
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜(์˜์–ด: algorithm), ์…ˆ๋ฒ•์€ย ์ˆ˜ํ•™๊ณผย ์ปดํ“จํ„ฐ๊ณผํ•™, ์–ธ์–ดํ•™ ๋˜๋Š” ์—ฎ์ธ ๋ถ„์•ผ์—์„œ ์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ•ด์ง„ ์ผ๋ จ์˜ ์ ˆ์ฐจ์ด๋‹ค. ๊ณ„์‚ฐ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„์  ์ ˆ์ฐจ๋ฅผ ์˜๋ฏธํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ฆ‰, ๋ฌธ์ œ ํ’€์ด์— ํ•„์š”ํ•œ ๊ณ„์‚ฐ์ ˆ์ฐจ ๋˜๋Š” ์ฒ˜๋ฆฌ๊ณผ์ •์˜ ์ˆœ์„œ๋ฅผ ๋œปํ•œ๋‹ค.

๐Ÿ“šย ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

  • ์ข‹์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด

    • ์ข‹์€ ๊ฐœ๋ฐœ์ž๋ž€ ์ข‹์€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ์ค„ ์•Œ์•„์•ผํ•จ
    • ์ข‹์€ ํ”„๋กœ๊ทธ๋žจ์ด๋ž€? ์ ์€ ๊ณต๊ฐ„์„ ์ด์šฉ ๋น ๋ฅธ ์†๋„๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
    • ์ฆ‰ ์ข‹์€ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•ด์„  ํŠน์ •์ž๋ฃŒ๊ตฌ์กฐ๋‚˜ ์ ‘๊ทผ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
  • ์ข‹์€ ํšŒ์‚ฌ์— ์ทจ์งํ•˜๊ธฐ ์œ„ํ•ด

    • ์œ ๋ง IT๊ธฐ์—… ์™ธ์—๋„ ๋งŽ์€ ์Šคํƒ€ํŠธ์—…๊นŒ์ง€ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๊ฐœ๋ฐœ์ž์˜ ํ•„์ˆ˜ ๊ด€๋ฌธ์œผ๋กœ ์‚ผ๊ณ ์žˆ์Œ

    • ๊ธฐ์ดˆ์ ์ธ ์ง€์‹๊ณผ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ ์ ์ ˆํ•œ ์‚ฌ๊ณ ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๊ฒ€์ฆ


๐Ÿ“Œย ์ตœ๋Œ€๊ฐ’ ์ฐพ๊ธฐ

  • Q. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ , ์ด ๋ฐฐ์—ด ๋‚ด์—์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜์‹œ์˜ค
[3, 5, 6, 1, 2, 4]
  • ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ• ๋ฌธ์ œํ’€์ด (๋‹ค์ค‘ ํฌ๋ฌธ์œผ๋กœ ํ’€๊ธฐ)
input = [3, 5, 6, 1, 2, 4]

def find_max_num(array):
    for num in array:
        for compare_num in array:
            if num < compare_num:
                break
        else:
            return num

result = find_max_num(input)
print(result)
  • ๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ• ๋ฌธ์ œํ’€์ด (์ง€์ • ๋ณ€์ˆ˜๋กœ ํ’€๊ธฐ)
input = [3, 5, 6, 1, 2, 4]

def find_max_num(array):
    max_num = array[0]
    for num in array:
        if num > max_num:
            max_num = num
    return max_num

result = find_max_num(input)
print(result)

๐Ÿ” ย ์ตœ๋นˆ๊ฐ’ ์ฐพ๊ธฐ

  • Q. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•˜์„ ๋•Œ, ์–ด๋–ค ์•ŒํŒŒ๋ฒณ์ด ๊ฐ€์žฅ ๋งŽ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜์‹œ์˜ค
    def find_max_occurred_alphabet(string):
        # ์ด ๋ถ€๋ถ„์„ ์ฑ„์›Œ๋ณด์„ธ์š”!
        return "a"
    
    result = find_max_occurred_alphabet(input)
    print("์ •๋‹ต = a ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("Hello my name is sparta"))
    print("์ •๋‹ต = a ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("Sparta coding club"))
    print("์ •๋‹ต = s ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("best of best sparta"))
  • ์ฐธ๊ณ ! ๋ฌธ์ž์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ํŒŒ์ด์ฌ์˜ ๋‚ด์žฅํ•จ์ˆ˜ str.isalpha()๋ฅผ ์ด์šฉ

      print("a".isalpha())
      print("1".isalpha())
      
      s = "abcdefg"
      print(s[0].isalpha())  # True
    • ์•ŒํŒŒ๋ฒณ ๋ณ„๋กœ ๋นˆ๋„์ˆ˜๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜๊ธฐ

      # [0,0,0,0,0,0,...,0,0]
      alphabet_occurrence_array = [0] * 26
    • ์ปดํ“จํ„ฐ๋Š” 0๊ณผ 1์ˆซ์ž ๋ฐ–์— ๋ชจ๋ฆ„, ๋•Œ๋ฌธ์— ๋ฌธ์ž๋„ ์ˆซ์ž๋กœ ๊ธฐ์–ตํ•จ

    • ์ด๋•Œ ์–ด๋–ค ์ˆซ์ž์™€ ์–ด๋–ค ๋ฌธ์ž๋ฅผ ๋Œ€์‘์‹œํ‚ค๋Š”๊ฐ€์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์ด ์žˆ๋Š”๋ฐ ํ†ต์ƒ ์•„์Šคํ‚ค ์ฝ”๋“œ ๋ฐฉ์‹์„ ๋งŽ์ด ์‚ฌ์šฉํ•จ

  • ์ฐธ๊ณ ! ๋ฌธ์ž๋ฅผ ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฒ•
    # ๋‚ด์žฅ ํ•จ์ˆ˜ ord() ์ด์šฉํ•ด์„œ ์•„์Šคํ‚ค ๊ฐ’ ๋ฐ›๊ธฐ
    
    print(ord('a')) 
  • ํ’€์ด
    1. ํ•„์š”ํ•œ๊ฒƒ

      • ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•
      • ์•ŒํŒŒ๋ฒณ์ด ๋ช‡ ๋ฒˆ ๋“ค์–ด์˜ฌ ์ง€ ์ €์žฅํ•  ๋ฐฉ๋ฒ•
      • ์–ด๋–ค ์•ŒํŒŒ๋ฒณ์ด ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์–ด์™”๋Š”์ง€ ํ™•์ธํ•  ๋ฐฉ๋ฒ•
      • ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์–ด์˜จ ์•ŒํŒŒ๋ฒณ์„ ๋ฆฌํ„ด
    2. ํ•„์š”ํ•œ ์ฝ”๋“œ ์ž‘์„ฑ๋ฒ•

      1. ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

        • ์ปดํ“จํ„ฐ๋Š” ๋ฌธ์ž๋ฅผ ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ์ธ์‹ํ•œ๋‹ค!
        • ์•„์Šคํ‚ค์ฝ”๋“œ ๋ฒˆํ˜ธ(์ •์ˆ˜)๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ํŒŒ์ด์ฌ ๋ฉ”์„œ๋“œ ord("์•ŒํŒŒ๋ฒณ") ์„ ์‚ฌ์šฉํ•œ๋‹ค
        alphabet = "a"
        ord_alphabet = ord(alphabet)
        print(ord_alphabet)
      2. ์•ŒํŒŒ๋ฒณ์ด ๋ช‡ ๋ฒˆ ๋“ค์–ด์˜ฌ ์ง€ ์ €์žฅํ•  ๋ฐฉ๋ฒ•

        • ์ด ์ค‘์—์„œ ์•ŒํŒŒ๋ฒณ์ด ๋ช‡ ๋ฒˆ ๋“ค์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋ญ”๊ฐ€ ์ €์žฅํ•ด์ค„ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค
        • ์•ŒํŒŒ๋ฒณ a-z๋ฅผ ์˜ˆ์‹œ๋กœ 26๊ฐœ์˜ ๊ฐ ๊ณต๊ฐ„์„ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณธ๋‹ค
        alphabet_list = ["a", "b", "c", "d", "e", "f", "g", 
        								"h", "i", "j", "k", "l", "m", "n", "o", "p", 
        								"q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
        • ์ด๋ ‡๊ฒŒ ์•ŒํŒŒ๋ฒณ์ด ๋“ค์–ด์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ผ์ผ์ด ์•ŒํŒŒ๋ฒณ์„ ๋‹ฌ๋ฉด์„œ ๋งŒ๋“ ๋‹ค๋ฉด, ์–ด๋–ค ์•ŒํŒŒ๋ฒณ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋ ‡๋‹ค ์น˜๋”๋ผ๋„, ์–ด๋””์— ์ €์žฅํ•  ๊ฒƒ์ด๋ƒ๋Š” ๋ฌผ์Œ์ด ์ƒ๊ธด๋‹ค.
        • ๊ทธ๋ ‡๋‹ค๋ฉด 0์ด a์ด๊ณ , 25๊ฐ€ z๋ผ๊ณ  ์ƒ์ •ํ•œ 0์ด ๋“ค์–ด์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์•ŒํŒŒ๋ฒณ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค 1์„ ๋”ํ•ด์ค˜ ๊ธฐ๋กํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณธ๋‹ค๋ฉด?
        alphabet_list = [0] * 26
        • ๊ฐ„๋‹จํ•˜๋ฉด์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ๋งˆ๋ จ๋˜์—ˆ๋‹ค.
      3. ์–ด๋–ค ์•ŒํŒŒ๋ฒณ์ด ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์–ด์™”๋Š”์ง€ ํ™•์ธํ•  ๋ฐฉ๋ฒ•

        • ์•ŒํŒŒ๋ฒณ์ด ์–ผ๋งˆ๋‚˜ ๋“ค์–ด์˜ฌ์ง€ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ์ƒํƒœ์—์„œ ํ™•์ธํ•  ์•ŒํŒŒ๋ฒณ์ด ๋ช‡ ๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ 1์„ ๋”ํ•ด์ฃผ๋ฉด ์นด์šดํŠธ๊ฐ€ ๋˜๋Š” ์…ˆ์ด๋‹ค.
          • ํ™•์ธํ•œ ์•ŒํŒŒ๋ฒณ์€ ๋ช‡ ๋ฒˆ์งธ ์ˆซ์ž์ธ์ง€ ํ™•์ธํ•˜๊ธฐ โ€”> ord() ์‚ฌ์šฉ
          • ord() ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธํ•œ ์ •์ˆ˜๋ฅผ index๋กœ ํ™œ์šฉํ•˜๊ธฐ
          • ๋ฆฌ์ŠคํŠธ[์ธ๋ฑ์Šค] ์˜ ๊ฐ’์„ 1 ๋”ํ•ด์ฃผ๊ธฐ
      4. ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์–ด์˜จ ์•ŒํŒŒ๋ฒณ์„ ๋ฆฌํ„ด

        • ๋ฆฌ์ŠคํŠธ์— ๊ฐ€์žฅ ๋งŽ์ด ๋‹ด๊ธด ๊ฐ’์ด ๋ช‡ ๋ฒˆ์งธ ์ธ๋ฑ์Šค์ธ์ง€ ๊ฐ€์ ธ๊ฐ€์•ผ ํ•œ๋‹ค
          • ํ•„์š”ํ•œ ๊ฒƒ์€ ๋ช‡ ๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์ธ์ง€์ด๋‹ค. ๋ช‡ ๋ฒˆ ๋“ค์–ด์™”๋Š๋ƒ๊ฐ€ ์•„๋‹ˆ๋‹ค!
        • ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ•ด์„œ ๊ทธ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•˜์ž
        • ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•˜๋Š” ๋ฉ”์„œ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ.index(๊ฐ’) ์ด๋‹ค.
        list_fruits = ["์‚ฌ๊ณผ", "๋ฐฐ", "์ฒด๋ฆฌ"]
        favorite_fruit = "๋ฐฐ"
        index_num = list_fruits.index(favorite_fruit)
    3. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘์„ฑ ๋ฐ ์ฝ”๋”ฉ

      1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘์„ฑ
        1. ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž๋ฅผ ์•ŒํŒŒ๋ฒณ ๋‹จ์œ„๋กœ ์ž˜๋ผ๋‚ด๊ธฐ

          • ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž๋Š” ๊ณต๋ฐฑ์„ ํฌํ•จํ•˜์—ฌ ๋‹จ์–ด๋กœ ๋ฌถ์—ฌ์žˆ๋‹ค. ํ•œ ๊ธ€์ž ๋‹จ์œ„๋กœ ์ž๋ฅด์ž
          • list() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธ€์ž ๋‹จ์œ„๋กœ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
          source_sentence = "go go coding of co! 0719-2022"
          source_list = list(source_sentence)
          • ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ ์•ˆ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ŒํŒŒ๋ฒณ, ํŠน์ˆ˜๋ฌธ์ž, ์ˆซ์ž, ๊ณต๋ฐฑ ๋“ฑ์ด ๋‹ค์–‘ํ•˜๊ฒŒ ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค.
          • ์•ŒํŒŒ๋ฒณ ๊ฒ€์‚ฌ ๋ฉ”์„œ๋“œ str.isalpha(๊ฐ’) ์„ ์‚ฌ์šฉํ•ด์„œ ์•ŒํŒŒ๋ฒณ์ธ ๊ฐ’๋งŒ ๋ฆฌ์ŠคํŠธ์— ๋‹ด์•„์ฃผ์ž
          source_list = []
          for char in list(source_sentence):
          	if str.isalpha(char):
          		source_list.append(char)
          • ์ด๋ ‡๊ฒŒ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž๋ฅผ ์•ŒํŒŒ๋ฒณ ๋‹จ์œ„๋กœ ์ž˜๋ผ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ๊นŒ์ง€ ํ–ˆ๋‹ค!
        2. ์•ŒํŒŒ๋ฒณ ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑ

          • ๋‹ค์Œ์€ ์œ„์˜ ์ž…๋ ฅ ์•ŒํŒŒ๋ฒณ๋“ค์„ ํ•œ ๋ฒˆ์”ฉ ํ™•์ธํ•˜๋ฉด์„œ ๊ฐ ์•ŒํŒŒ๋ฒณ์„ ์นด์šดํŠธํ•  ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค
          alphabet_list = [0] * 26
          • ์ž…๋ ฅ๋ฐ›์€ ์•ŒํŒŒ๋ฒณ์ด A-Z๊นŒ์ง€ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ์— 26๊ฐœ์˜ ์•ŒํŒŒ๋ฒณ์„ ๋ชจ๋‘ ์ €์žฅํ•  ๊ณต๊ฐ„์„ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค
        3. ์•ŒํŒŒ๋ฒณ ์นด์šดํŠธ

          • ์ž…๋ ฅ ๋ฐ›์€ ๋ฌธ์ž๋ฅผ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ๋‹ด์•„๋‘” source_list
          • ์•ŒํŒŒ๋ฒณ a-z ์นด์šดํŠธํ•  ์ˆ˜ ์žˆ๋Š” 26๊ธธ์ด์˜ ๋ฆฌ์ŠคํŠธ alphabet_list
          • ๋‘ ๊ฐ€์ง€์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์•ŒํŒŒ๋ฒณ์ด ๋ช‡ ๋ฒˆ ๋“ค์–ด๊ฐ”๋Š”์ง€ ์นด์šดํŠธํ•œ๋‹ค
          • ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ source_list๋ฅผ ์Šฌ๋ผ์ด์‹ฑํ•˜์—ฌ ์–ด๋–ค ์•ŒํŒŒ๋ฒณ์ธ์ง€ ํ™•์ธํ•˜๊ณ 
          for char in source_list:
          	# ์•ŒํŒŒ๋ฒณ์„ ๋ฒˆํ˜ธ๋กœ ๋งŒ๋“ค๊ธฐ
          	ord(char)
          	# ์•ŒํŒŒ๋ฒณ์„ 0~25 ์‚ฌ์ด์˜ ์ˆซ์ž๋กœ ๋งŒ๋“œ๋ ค๋ฉด a~z์˜ ๊ฐ’์—์„œ a๋ฅผ ๋นผ์ฃผ๋ฉด ๋œ๋‹ค!
          	target_index = ord(char) - ord("a")
          • ์•ŒํŒŒ๋ฒณ์— ํ•ด๋‹นํ•˜๋Š” ๋ฒˆํ˜ธ๋ฅผ ์ฐพ์•„ alphabet_list์— ์นด์šดํŠธํ•œ๋‹ค
          for char in source_list:
          	target_index = ord(char) - ord("a")
          	alphabet_list[target_index] += 1
        4. ์•ŒํŒŒ๋ฒณ ์ตœ๋Œ“๊ฐ’, ์ตœ๋นˆ๊ฐ’ ์ฐพ๊ธฐ

          • ์ด์ œ source_list์˜ ์•ŒํŒŒ๋ฒณ์„ alphabet_list ๋ฆฌ์ŠคํŠธ์— ์นด์šดํŠธํ–ˆ๋‹ค.
          • ์นด์šดํŠธ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ๋œ ์ตœ๋Œ€์ˆ˜๋ฅผ ์ฐพ๊ณ  ๋‚˜์„œ ํ•ด๋‹น ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์ž
          max_num = alphabet_list[0]
          for num in alphabet_list:
          	if num > max_num:
          		max_num = num
          # ์ตœ๋Œ€์ˆ˜๋ฅผ ๊ฐ’์œผ๋กœ ์ธ๋ฑ์Šค ์ฐพ์•„๋‚ด๊ธฐ
          target_index = alphabet_list.index(max_num)
          # chr์„ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์‹œ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
          target_char = chr(target_index)
      2. ์ฝ”๋“œ
      source_sentence = "go go coding of co! 0719-2022"
      
      source_list = []
      for char in list(source_sentence):
      	if str.isalpha(char):
      		source_list.append(char)
      
      alphabet_list = [0] * 26
      
      for char in source_list:
      	target_index = ord(char) - ord("a")
      	alphabet_list[target_index] += 1
      
      max_num = alphabet_list[0]
      for num in alphabet_list:
      	if num > max_num:
      		max_num = num
      target_index = alphabet_list.index(max_num)
      target_char = chr(target_index)
  • ํŠœํ„ฐ๋‹˜์˜ ํ’€์ด
    • ์ฒซ๋ฒˆ์งธ ํ’€์ด
      1. ๊ฐ ์•ŒํŒŒ๋ฒณ๋งˆ๋‹ค ๋ฌธ์ž์—ด์„ ๋Œ๋ฉฐ ๋ช‡ ๊ธ€์ž๊ฐ€ ๋‚˜์™”๋Š”์ง€ ํ™•์ธ

      2. ๋จ„์•ฝ ๊ทธ ์ˆซ์ž๊ฐ€ ์ €์žฅํ•œ ์•ŒํŒŒ๋ฒณ ๋นˆ๋„ ์ˆ˜๋ณด๋‹ค ํฌ๋ฉด, ๊ทธ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์ œ์ผ ํฐ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ €์žฅ

      3. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณต!

        def find_max_occurred_alphabet(string):
        		# ์•ŒํŒŒ๋ฒณ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ฆ
            alphabet_array = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
                              "t", "u", "v", "x", "y", "z"]
        
        		# ์ดˆ๊ธฐ์˜ ์ตœ๋นˆ๊ฐ’์€ 0, ๋ฆฌ์ŠคํŠธ์˜ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๊ฐ’(์ฆ‰, "a")์€ max_alphabet์œผ๋กœ ์„ค์ •
            max_occurrence = 0
            max_alphabet = alphabet_array[0]
        
        		# a-z ์—์„œ a๋ฅผ alphabet์œผ๋กœ ๋Œ๋ฆผ (๋ฐœ์ƒ๋นˆ๋„๋Š” 0)
            for alphabet in alphabet_array:
                occurrence = 0
        				# ์šฐ๋ฆฌ๊ฐ€ ๋„ฃ๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ด์˜ ์ฒซ ๊ธ€์ž ๋„ฃ๊ธฐ(H..e..l..l.o..m.....a!)
        				# alphabet๊ณผ ๊ฐ™์œผ๋ฉด ๋ฐœ์ƒ๋นˆ๋„๋ฅผ 1 ์˜ฌ๋ฆฌ๊ณ  ๋‹ค์‹œ for ๋Œ๋ฆผ
                for char in string:
                    if char == alphabet:
                        occurrence += 1
        
                if occurrence > max_occurrence:
                max_alphabet = alphabet
                max_occurrence = occurrence
        
            return max_alphabet
        
        result = find_max_occurred_alphabet
        print("์ •๋‹ต = a ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("Hello my name is sparta"))
        print("์ •๋‹ต = a ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("Sparta coding club"))
        print("์ •๋‹ต = s ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("best of best sparta"))
    • ๋‘๋ฒˆ์งธ ํ’€์ด
      1. ๊ฐ ์•ŒํŒŒ๋ฒณ์˜ ๋นˆ๋„์ˆ˜๋ฅผ alphabet_occurrence_list๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅ

      2. ๊ฐ ๋ฌธ์ž์—ด์„ ๋Œ๋ฉด์„œ ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ธ์ง€๋ฅผ ํ™•์ธ

      3. ์•ŒํŒŒ๋ฒณ์„ ์ธ๋ฑ์Šคํ™” ์‹œ์ผœ ๊ฐ ์•ŒํŒŒ๋ฒณ์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธ

      4. ์•ŒํŒŒ๋ฒณ์˜ ๋นˆ๋„์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์ธ๋ฑ์Šค๋ฅผ ์•Œ์•„๋ƒˆ์ฃ 

      5. ์—ฌ๊ธฐ์„œ max_alphabet_index๊ฐ€ 0์ด๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•จ!

      6. ์•„์Šคํ‚ค ์ฝ”๋“œ๋ฒˆํ˜ธ๋ฅผ ์‹ค์ œ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด chr()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ

        def find_max_occurred_alphabet(string):
            alphabet_occurrence_array = [0] * 26
        
            for char in string:
                if not char.isalpha():
                    continue
                arr_index = ord(char) - ord('a')
                alphabet_occurrence_array[arr_index] += 1
        
            max_occurrence = 0
            max_alphabet_index = 0
            for index in range(len(alphabet_occurrence_array)):
                alphabet_occurrence = alphabet_occurrence_array[index]
                if alphabet_occurrence > max_occurrence:
                    max_occurrence = alphabet_occurrence
                    max_alphabet_index = index
        		return chr(max_alphabet_index + ord('a'))
        
        result = find_max_occurred_alphabet
        print("์ •๋‹ต = a ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("Hello my name is sparta"))
        print("์ •๋‹ต = a ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("Sparta coding club"))
        print("์ •๋‹ต = s ํ˜„์žฌ ํ’€์ด ๊ฐ’ =", result("best of best sparta"))
profile
์ฝ”๋”ฉ์ด ์ทจ๋ฏธ๊ฐ€ ๋˜๋Š” ๊ทธ๋‚ ๊นŒ์ง€

0๊ฐœ์˜ ๋Œ“๊ธ€