Skip to content

[tigermint] WEEK 09 Solutions - #2830

Merged
parkhojeong merged 4 commits into
DaleStudy:mainfrom
tigermint:week9
Aug 22, 2026
Merged

[tigermint] WEEK 09 Solutions#2830
parkhojeong merged 4 commits into
DaleStudy:mainfrom
tigermint:week9

Conversation

@tigermint

@tigermint tigermint commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

๋‹ต์•ˆ ์ œ์ถœ ๋ฌธ์ œ

์ž‘์„ฑ์ž ์ฒดํฌ ๋ฆฌ์ŠคํŠธ

  • Projects์˜ ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ(โ–ผ)์„ ๋ˆŒ๋Ÿฌ ํ™•์žฅํ•œ ๋’ค, Week๋ฅผ ํ˜„์žฌ ์ฃผ์ฐจ๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.
  • ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ํ‘ธ์‹œ๋ฉด ํ”„๋กœ์ ํŠธ์—์„œ Status๋ฅผ In Review๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.
  • ์ฝ”๋“œ ๊ฒ€ํ† ์ž 1๋ถ„ ์ด์ƒ์œผ๋กœ๋ถ€ํ„ฐ ์Šน์ธ์„ ๋ฐ›์œผ์…จ๋‹ค๋ฉด PR์„ ๋ณ‘ํ•ฉํ•ด์ฃผ์„ธ์š”.

๊ฒ€ํ† ์ž ์ฒดํฌ ๋ฆฌ์ŠคํŠธ

Important

๋ณธ์ธ ๋‹ต์•ˆ ์ œ์ถœ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ถ„ PR ํ•˜๋‚˜ ์ด์ƒ์„ ๋ฐ˜๋“œ์‹œ ๊ฒ€ํ† ๋ฅผ ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค!

  • ๋ฐ”๋กœ ์ด์ „์— ์˜ฌ๋ผ์˜จ PR์— ๋ณธ์ธ์„ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์–ด๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.
  • ๋ณธ์ธ์ด ๊ฒ€ํ† ํ•ด์•ผํ•˜๋Š” PR์˜ ๋‹ต์•ˆ ์ฝ”๋“œ์— ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์„ธ์š”.
  • ํ† ์š”์ผ ์ „๊นŒ์ง€ PR์„ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์Šน์ธํ•ด์ฃผ์„ธ์š”.

@dalestudy

dalestudy Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

๐Ÿ“Š tigermint ๋‹˜์˜ ํ•™์Šต ํ˜„ํ™ฉ

์ด๋ฒˆ ์ฃผ ์ œ์ถœ ๋ฌธ์ œ

๋ฌธ์ œ ๋‚œ์ด๋„ ์œ ํ˜• ๋ถ„์„
linked-list-cycle Easy โš ๏ธ ์œ ํ˜• ๋ถˆ์ผ์น˜
maximum-product-subarray Medium โœ… ์˜๋„ํ•œ ์œ ํ˜•

๋ˆ„์  ํ•™์Šต ์š”์•ฝ

  • ํ’€์ดํ•œ ๋ฌธ์ œ: 10 / 75๊ฐœ
  • ์ด๋ฒˆ ์ฃผ ์œ ํ˜• ์ผ์น˜์œจ: 50% (2๋ฌธ์ œ ์ค‘ 1๋ฌธ์ œ ์ผ์น˜)

๋ฌธ์ œ ํ’€์ด ํ˜„ํ™ฉ

์นดํ…Œ๊ณ ๋ฆฌ ์ง„ํ–‰๋„ ์™„๋ฃŒ
Matrix โ– โ– โ–กโ–กโ–กโ–กโ–ก 1 / 4 (Medium 1)
Array โ– โ–กโ–กโ–กโ–กโ–กโ–ก 2 / 10 (Medium 2)
Binary โ– โ–กโ–กโ–กโ–กโ–กโ–ก 1 / 5 (Easy 1)
String โ– โ–กโ–กโ–กโ–กโ–กโ–ก 2 / 10 (Medium 1, Easy 1)
Dynamic Programming โ– โ–กโ–กโ–กโ–กโ–กโ–ก 2 / 11 (Easy 1, Medium 1)
Linked List โ– โ–กโ–กโ–กโ–กโ–กโ–ก 1 / 6 (Easy 1)
Tree โ– โ–กโ–กโ–กโ–กโ–กโ–ก 1 / 14 (Easy 1)
Graph โ–กโ–กโ–กโ–กโ–กโ–กโ–ก 0 / 8 โ† ์•„์ง ์‹œ์ž‘ ์•ˆ ํ•จ
Interval โ–กโ–กโ–กโ–กโ–กโ–กโ–ก 0 / 5 โ† ์•„์ง ์‹œ์ž‘ ์•ˆ ํ•จ
Heap โ–กโ–กโ–กโ–กโ–กโ–กโ–ก 0 / 3 โ† ์•„์ง ์‹œ์ž‘ ์•ˆ ํ•จ

๐Ÿค– ์ด ๋Œ“๊ธ€์€ GitHub App์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”ข API ์‚ฌ์šฉ๋Ÿ‰ (gpt-5-nano)
์š”์ฒญ ์ž…๋ ฅ ํ† ํฐ ์ถœ๋ ฅ ํ† ํฐ ํ•ฉ๊ณ„ ๋น„์šฉ
1 444 53 497 $0.000043
2 441 37 478 $0.000037
3 799 146 945 $0.000098
4 816 74 890 $0.000070
5 817 84 901 $0.000074
ํ•ฉ๊ณ„ 3,317 394 3,711 $0.000323

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๐Ÿท๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจํ„ด ๋ถ„์„

linked-list-cycle/tigermint.kt
/**
 * Example:
 * var li = ListNode(5)
 * var v = li.`val`
 * Definition for singly-linked list.
 * class ListNode(var `val`: Int) {
 *     var next: ListNode? = null
 * }
 */

/**
 * TC: O(n)
 * SC: O(n)
 */
class Solution1 {
    fun hasCycle(head: ListNode?): Boolean {
        val visited = mutableSetOf<ListNode>()
        var current = head

        while (current != null) {
            if (current in visited) return true
            visited.add(current)
            current = current.next
        }
        return false
    }
}

/**
 * TC: O(n)
 * SC: O(1)
 */
class Solution2 {
    fun hasCycle(head: ListNode?): Boolean {
        var slow = head
        var fast = head?.next?.next

        while (fast != null) {
            if (slow == fast) return true
            slow = slow?.next
            fast = fast?.next?.next
        }
        return false
    }
}
  • ํŒจํ„ด: Two Pointers, Floydโ€™s Tortoise and Hare, Hash Map / Hash Set
  • ์„ค๋ช…: ์ฝ”๋“œ1์€ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ํ•ด์‹œ ์…‹์œผ๋กœ ์ถ”์ ํ•˜๋Š” ํ•ด์‹œ ๋งต/์…‹ ํŒจํ„ด, ์ฝ”๋“œ2๋Š” ๋‘ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ ์ˆœํ™˜ ์—ฌ๋ถ€ ํ™•์ธ(Floyd์˜ ์›ํ˜• ๊ณ ๋ฆฌ ํƒ์ง€) ํŒจํ„ด์œผ๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค. ๋‘ ๊ตฌํ˜„ ๋ชจ๋‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์‚ฌ์ดํด ์—ฌ๋ถ€ ํŒ๋‹จ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Š ์‹œ๊ฐ„/๊ณต๊ฐ„ ๋ณต์žก๋„ ๋ถ„์„

โ„น๏ธ ์ด ํŒŒ์ผ์—๋Š” 2๊ฐ€์ง€ ํ’€์ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ๊ฐ๊ฐ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

ํ’€์ด 1: Solution1.hasCycle โ€” Time: โœ… O(n) โ†’ O(n) / Space: โœ… O(n) โ†’ O(n)
์œ ์ € ๋ถ„์„ ์‹ค์ œ ๋ถ„์„ ๊ฒฐ๊ณผ
Time O(n) O(n) โœ…
Space O(n) O(n) โœ…

ํ”ผ๋“œ๋ฐฑ: ๊ฐ ๋…ธ๋“œ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๋ฐฉ๋ฌธํ•˜๋ฉฐ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ์„ธํŠธ๋กœ ์ €์žฅํ•˜๋ฏ€๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์ €์žฅํ•œ๋‹ค.

๊ฐœ์„  ์ œ์•ˆ: ํ˜„์žฌ ๊ตฌํ˜„์ด ์ ์ ˆํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

ํ’€์ด 2: Solution2.hasCycle โ€” Time: โœ… O(n) โ†’ O(n) / Space: โœ… O(1) โ†’ O(1)
์œ ์ € ๋ถ„์„ ์‹ค์ œ ๋ถ„์„ ๊ฒฐ๊ณผ
Time O(n) O(n) โœ…
Space O(1) O(1) โœ…

ํ”ผ๋“œ๋ฐฑ: ์ถ”๊ฐ€ ํŽ˜์ด์ง• ์—†์ด ์ƒ์ˆ˜ ๊ณต๊ฐ„์œผ๋กœ ์‚ฌ์ดํด ์—ฌ๋ถ€๋ฅผ ํŒ๋ณ„ํ•œ๋‹ค. ์ดˆ๊ธฐ fast ํฌ์ธํ„ฐ์˜ ์‹œ์ž‘ ์œ„์น˜์— ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

๊ฐœ์„  ์ œ์•ˆ: ํ˜„์žฌ ๊ตฌํ˜„์ด ์ ์ ˆํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

@DaleStudy DaleStudy deleted a comment from dalestudy Bot Aug 22, 2026
@DaleStudy DaleStudy deleted a comment from dalestudy Bot Aug 22, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๐Ÿท๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจํ„ด ๋ถ„์„

maximum-product-subarray/tigermint.kt
/**
 * TC: O(n)
 * SC: O(1)
 * ์Œ์ˆ˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„ ์‹œ์ ์— min/max ๋ชจ๋‘ ์ถ”์ ํ•ด์•ผํ•œ๋‹ค
 */
class Solution {
    fun maxProduct(nums: IntArray): Int {
        var curMax = nums[0]
        var curMin = nums[0]
        var answer = nums[0]

        for (i in 1 ..< nums.size) {
            val n = nums[i]

            val nextMax = maxOf(n, curMax * n, curMin * n)
            val nextMin = minOf(n, curMax * n, curMin * n)

            curMax = nextMax
            curMin = nextMin
            answer = maxOf(answer, curMax)
        }
        return answer
    }
}
  • ํŒจํ„ด: Dynamic Programming, Greedy, Binary Search
  • ์„ค๋ช…: ์Œ์ˆ˜ ํฌํ•จ ์‹œ ์ตœ๋Œ€ ๊ณฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ์ตœ๋Œ€/์ตœ์†Œ ์—ฐ์† ๊ตฌ๊ฐ„ ๊ณฑ์„ ํ•จ๊ป˜ ๊ฐฑ์‹ ํ•˜๋Š” ํŒจํ„ด์œผ๋กœ, ์—ฐ์† ๊ตฌ๊ฐ„์˜ ์ตœ๋Œ“๊ฐ’์„ ๋™์ ์œผ๋กœ ์ถ”์ ํ•˜๋Š” DP ์„ฑ๊ฒฉ๊ณผ ๋ถ€ํ˜ธ๋ฅผ ๊ณ ๋ คํ•œ ์ตœ์ ํ™”(๊ทธ๋ฆฌ๋””์— ์ค€ํ•˜๋Š” ์„ ํƒ) ํŠน์ง•์ด ๋ณด์ž…๋‹ˆ๋‹ค.

๐Ÿ“Š ์‹œ๊ฐ„/๊ณต๊ฐ„ ๋ณต์žก๋„ ๋ถ„์„

์œ ์ € ๋ถ„์„ ์‹ค์ œ ๋ถ„์„ ๊ฒฐ๊ณผ
Time O(n) O(n) โœ…
Space O(1) O(1) โœ…

ํ”ผ๋“œ๋ฐฑ: ์Œ์ˆ˜์˜ ๋ถ€ํ˜ธ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ์œ„์น˜์—์„œ์˜ ์ตœ๋Œ€๊ฐ’๊ณผ ์ตœ์†Œ๊ฐ’์„ ํ•จ๊ป˜ ์œ ์ง€ํ•œ๋‹ค. ๊ฐ ์›์†Œ์— ๋Œ€ํ•ด ์ƒ์œ„/ํ•˜์œ„ ๊ณฑ์„ ๋น„๊ตํ•˜์—ฌ ๊ฐฑ์‹ ํ•œ๋‹ค.

๊ฐœ์„  ์ œ์•ˆ: ํ˜„์žฌ ๊ตฌํ˜„์ด ์ ์ ˆํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

@DaleStudy DaleStudy deleted a comment from dalestudy Bot Aug 22, 2026

@parkhojeong parkhojeong left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค~

@parkhojeong
parkhojeong merged commit c16e84b into DaleStudy:main Aug 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

2 participants