๋ชฉ๋กiOS [Swift] (55)

Focus On Develop ๐ŸคŸ๐ŸคŸ

[Swift] ARC (Automatic Reference Counting)

Swift์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”~? Swift์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์„ฑ๋Šฅ์ €ํ•˜๋ฅผ ๋ง‰๊ธฐ์œ„ํ•ด ARC ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”! ์ด ARC์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ด์š”! RC๋ž€ Reference Counting์˜ ์•ฝ์ž๋กœ ์• ํ”Œ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ผ๋Š” ๊ธฐ๋ณธ์ ์ธ Rule์ด๋ผ๋Š” ์ „์ œ๋ฅผ ๋‘ก๋‹ˆ๋‹ค. MRC๋ž€ Manual Reference Counting์˜ ์•ฝ์ž๋กœ Object-C์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘! ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น/ํ•ด์ œ ํ•ด์ค˜์•ผ ํ• ๋•Œ ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์€ ์ฟจํ•˜๊ฒŒ ์š”์ •๋„๋กœ ํŒจ์Šคํ•ฉ๋‹ˆ๋‹ค.ใ…Ž ์ด๋ฏธ Swift๊ฐ€ ๋ณดํŽธํ™” ๋˜์—ˆ๊ณ , ์ € ๋˜ํ•œ Object-C๋Š” 1๋„ ๋ชจ๋ฅด๊ณ  ํ˜„์žฌ ์‚ฌ์šฉ๋„ ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ..ใ…‹๐Ÿ‘๐Ÿ‘ ์ž ์ด์ œ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ, ARC๋ž€ Automatic Reference Counting์˜..

[Swift] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ์‹œ ์œ ์šฉํ•œ Tip๋“ค!

์ด ํŽ˜์ด์ง€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋•Œ ์ž์ฃผ(?) ์“ฐ์ด๋Š” ์Šคํ‚ฌ(?) ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋‘˜ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์Œ..? root๊ฐ’ ์–ด๋–ป๊ฒŒ ๊ตฌํ•˜์ง€.. ์ง„๋ฒ•๋ณ€ํ™˜ ์–ด๋–ป๊ฒŒ ํ•˜์ง€.. ๋“ฑ๋“ฑ! (๋งค๋ฒˆ ๊ตฌ๊ธ€๋งํ•˜๊ธฐ ๋„˜ ๊ท€์ฐฎ..๐Ÿ˜”) ์ •~๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฒ•๋งŒ ์ •๋ฆฌํ•  ์˜ˆ์ •์ด๋ž๋‹ˆ๋‹ค ๐Ÿ˜Ž ๋ฌธ์ œ ํ’€๋ฉด์„œ ๋˜ ์ž์ฃผ ๋ณด์ด๋Š” ๊ฒƒ์€ ์ด ํŽ˜์ด์ง€์— ์ถ”๊ฐ€ํ•ด๋‚˜๊ฐˆ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค ๐Ÿ‘๐Ÿ‘ - ๋ฐฐ์—ด ์ดˆ๊ธฐ๊ฐ’ ๋„ฃ์–ด์„œ ๋งŒ๋“ค๊ธฐ var array = Array(1...5) // [1,2,3,4,5] - ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง„ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ var arr = Array(repeating: 0, count: 3) // [0,0,0] - 2์ฐจ์› ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ let array: [[Int]] = Array(repeating:Array(repeating:1, count: 4), c..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นดํŽซ

์ผ๋‹จ ์นดํŽซ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๋Š” ๊ทœ์น™ ํ˜น์€, ์›๋ฆฌ๋ฅผ ์•Œ์•„๋‚ด์•ผ ํ•œ๋‹ค. ์ฒ˜์Œ ์‹œ๋„๋Š” brown ๊ธฐ์ค€์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์ถ”์ •ํ•˜๋ ค๊ณ  ํ•ด๋ณผ๊นŒ ํ–ˆ๋Š”๋ฐ.. ์˜ˆ์‹œ 3๋ฒˆ ์ผ€์ด์Šค์—์„œ ์•„? ์ด๊ฑด์•ˆ๋˜๊ฒ ๊ตฌ๋‚˜ ํ•˜๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค ใ…‹ใ…‹ ์ฆ‰.. ์ด๋ฌธ์ œ๋Š” yellow ๋กœ๋ถ€ํ„ฐ ํฌ๊ธฐ๋ฅผ ์•Œ์•„๋‚ด์•ผํ•œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. ์ง์‚ฌ๊ฐํ˜•๊ณ  yellow์˜ ํฌ๊ธฐ๊ฐ€ ์ตœ์†Œ 1x1์€ ๋˜๋‹ˆ(์ž…์ถœ๋ ฅ ์ œํ•œ์‚ฌํ•ญ), yellow์˜ ํฌ๊ธฐ๋งŒ ์•Œ๋ฉด yellow์˜ (์œ„์•„๋ž˜๊ธธ์ด + ์ขŒ์šฐ๊ธธ์ด) x 2 + 4(๋์ชฝ๋ชจ์„œ๋ฆฌ) ๋งŒ ํ•ด์ฃผ๋ฉด brown์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. (brown์€ yellow๋ฅผ ๊ฐ์‹ธ๋Š” ํ…Œ๋‘๋ฆฌ๋‹ˆ๊นŒ) ๊ด€๊ฑด์€ yellow์˜ ํฌ๊ธฐ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ•˜์ง€? yellow์˜ ํฌ๊ธฐ๋Š” ๊ฐ€๋กœx์„ธ๋กœ๋กœ ๊ตฌํ•ด์งˆ ๊ฑด๋ฐ, ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์˜ ๊ฐ€๋กœx์„ธ๋กœ (์•ฝ์ˆ˜์˜ ๊ณฑ) ์ค‘์— ์œ„์—์„œ ๋„์ถœํ•œ brown ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹์— ๋„ฃ์—ˆ์„..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜

"numbers๋ฅผ ์ญ‰ ์ด์–ด๋ถ™์—ฌ์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด, ์ œ์ผ ์•ž์ž๋ฆฌ์— ์ œ์ผ ํฐ ์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋ฉด๋œ๋‹ค" ๋ผ๋Š” ์ „์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•œ๋‹ค. ์Œ.. ๊ทผ๋ฐ ์˜ˆ์‹œ์˜ 2๋ฒˆ์ผ€์ด์Šค๋ฅผ ๋ณด๋ฉด 3, 30, 34 ์ด๋ ‡๊ฒŒ ํฌํ•จ๋˜์–ด ์žˆ๋Š”๋ฐ ์•ž์ž๋ฆฌ๊ฐ€ ๋ชจ๋‘ 3์ด๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜์ง€? ์ด ๋ถ€๋ถ„์„ ๊ณ ๋ฏผํ•˜๋Š”๊ฒŒ ๊ฐ€์žฅ ํ•ต์‹ฌ์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. 3์ด 34๋ณด๋‹ค๋Š” ๋’ค์—, 30๋ณด๋‹ค๋Š” ์•ž์— ์žˆ์–ด์•ผ ๊ฐ€์žฅ ํฐ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ, (์ž๋ฆฟ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๊ทธ๋ƒฅ ์ •๋ ฌํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋น„๊ต๊ฐ€ ์–ด๋ ต๋‹ค.) ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ๋น„๊ตํ•  ํ–‰๋™์€ 3์˜ 3๊ณผ, 30์˜ 0์ค‘ ์–ด๋–ค๊ฒŒ ๋” ํฐ๊ฐ€์š”? ๋ผ๊ณ  ์‹œ์ž‘ ๋  ๊ฒƒ ๊ฐ™๋‹ค. ๊ทผ๋ฐ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๊ธธ๊ณ  ๋น„๊ตํ•ด์•ผ ํ• ๊ฒŒ ๋งŽ๋‹ค๋ฉด..??? ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๋Š”, ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๋ฅผ String์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋น„๊ต๋ฅผ ํ•ด์•ผํ•˜๋Š”๋ฐ.. ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ์›์†Œ๊ฐ€ ์ตœ๋Œ€ 1000 ์ดํ•˜๋กœ ์ฃผ์–ด์ง€๋‹ˆ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] H-Index

์Œ.. ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” Brute Force ๋ฐฉ์‹์œผ๋กœ, H-Index๊ฐ€ 0์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋œ citations๋ฅผ ํ™•์ธํ•˜๋Š”๋ฐ, H-Index์— ํ•ด๋‹น๋˜๋Š” ์ˆ˜๊ฐ€ citations ์•ˆ์— H-Index๊ฐœ ์ด์ƒ์žˆ๋Š”์ง€?๋ฅผ ๋ณด๋‹ค๊ฐ€.. ์•„๋‹Œ ์ˆœ๊ฐ„์ด ์˜ค๋ฉด break ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. (๊ทผ๋ฐ ์ด๋ฐฉ๋ฒ•์€.. ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ๊ณผ ์žˆ์–ด์„œ๋Š” ์•ˆ๋  ์ผ€์ด์Šค๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด 1000์œผ๋กœ 1000๊ฐœ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค๋ฉด..?ใ…‹ใ…‹ ์‰ฃ..๐Ÿ‘Š) ๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋˜ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ citations ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค์™€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ์‹œ๋ฅผ ์˜ˆ๋กœ๋“ค๋ฉด, ์ •๋ ฌ๋œ citations๋Š” 0, 1, 3, 5, 6 ์ด๊ณ , totalCount - index -1 ๊ณผ ๋น„๊ตํ•ด์„œ citations๊ฐ€ ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด.. ์ ์–ด๋„ to..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ธฐ๋Šฅ๊ฐœ๋ฐœ

๋จผ์ € ๊ฐ ์ž‘์—…์ด ๋ช‡์ผ์„ ํ•„์š”๋กœ ํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค. (100-progress) / speed ๋ฅผ ํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ด๊ฒŒ ๋”ฑ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํ•˜๋ฃจ๊ฐ€ ๋” ํ•„์š”ํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ์ž‘์—…์‹œ๊ฐ„์ด ๊ณ„์‚ฐ๋œ Queue๋ฅผ ๊ฐ€์ง€๊ณ  ๋ฉ”์ธ ๋กœ์ง์„ ์‹œ์ž‘ํ•œ๋‹ค. ์ œ์ผ ๋จผ์ € ๋ฐฐํฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ž‘์—…์˜ ์ž‘์—…์ด ์™„๋ฃŒ๊ฐ€ ๋ ๋•Œ๊นŒ์ง€ ์‹œ๊ฐ„์„ ํ˜๋Ÿฌ ๋ณด๋‚ธ๋‹ค.(ํ•„์š”๋กœ ํ–ˆ๋˜ ์ž‘์—…์ผ์ˆ˜์—์„œ 1์”ฉ ๋นผ๊ธฐ) ๊ทธ๋Ÿฌ๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์ž‘์—…์ด ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ ๋’ค๋กœ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ž‘์—…(ํ•„์š”๋กœ ํ•˜๋Š” ์ž‘์—…์ผ์ˆ˜ [Int] { var workDay: [Int] = [] var res: [Int] = [] var cnt = 0 for i in 0...progresses.count-1 { if (100 - progresses[i]) % speeds [i] == 0 ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ

๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๋Š” ํŠธ๋Ÿญ์— ๋Œ€ํ•ด์„œ ์ˆœ์„œ๋Œ€๋กœ bridge์— ์ง„์ž…์„ ์‹œ๋„ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ ์กฐ๊ฑด์ด ์ง€๊ธˆ ๋‚ด๊ฐ€(๋Œ€๊ธฐํ•˜๋Š” ์ฒซ๋ฒˆ์งธ ํŠธ๋Ÿญ) bridge์— ์˜ฌ๋ผ๊ฐ€๋„ ๋ฌด๊ฒŒ๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋‹ˆ? ๋ฅผ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ƒˆ๋กœ์šด ํŠธ๋Ÿญ์„ ์ง„์ž…์‹œํ‚ค๊ณ , ๊ฒฌ๋”œ ์ˆ˜ ์—†๋‹ค๋ฉด ๋นˆ์นธ์„ ํ•œ์นธ ๋ณด๋‚ธ๋‹ค. (๋‹ค๋ฆฌ๊ฐ€ ๊ฐ€๋“ ์ฐผ์„ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ํŠธ๋Ÿญ์„ ํƒˆ์ถœ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์–ผ๋งˆ๋งŒํผ ์ด๋™ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋นˆ์นธ์„ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค.. ์ด๋ ‡๊ฒŒ ๋นˆ์นธ์„ ๋ณด๋‚ด์ฃผ์ง€ ์•Š๊ณ  ์–ผ๋งˆ๋งŒํผ ์ด๋™ํ–ˆ๋Š”์ง€ ์œ„์น˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠธ๋Ÿญ์˜ ๋ฌด๊ฒŒ์™€ ํ˜„์žฌ์œ„์น˜๋ฅผ Property๋กœ ๊ฐ€์ง€๋Š” struct๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ• ๊ฒƒ๊ฐ™๋‹ค..๐Ÿ˜ญ) ๋™์‹œ์— ์ด๋•Œ ์ง„ํ–‰์‹œ๊ฐ„์„ 1์ดˆ์”ฉ ๋”ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์ด ๊ณผ์ •์„ ๋Œ€๊ธฐํ•˜๋Š” ํŠธ๋Ÿญ์ด ์—†์–ด์งˆ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต์‹œ์ผœ์ค€๋‹ค! import Foundation func solution(..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ

์‹œ๋„๋Š”.. ํฐ ์ˆ˜๊ฐ€ ์•ž์— ์˜ฌ์ˆ˜๋ก ์ข‹์€๊ฒƒ์ด์—ฌ! ์ข‹์€๊ฒŒ ์ข‹์€๊ฒƒ์ด์—ฌ! ๐Ÿ‘ ๋ผ๋Š” ํŒ๋‹จ์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค. k๊ฐœ๋ฅผ ์ง€์šด๋‹ค๋Š” ๊ฒƒ์€ ๊ฒฐ๊ณผ๋ฅผ number.count - k ์ž๋ฆฌ ์ˆ˜๋กœ ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฃผ์–ด์ง„ number์—์„œ ๋“ฑ์žฅํ•˜๋Š” ์ˆซ์ž๋ฅผ Set์œผ๋กœ ์ค‘๋ณต์ œ๊ฑฐํ•œ ํ›„์— ์ •๋ ฌํ•œ๋‹ค๋ฉด, ๋“ฑ์žฅํ•˜๋Š” ์ˆซ์ž๋“ค์—์„œ ํฐ์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ๊ฐ€์žฅ ํฐ ์ˆ˜๊ฐ€ number์—์„œ ๋“ฑ์žฅํ•˜๋Š” ์ฒซ๋ฒˆ์งธ index๋ฅผ ์ฐพ๊ณ , ์ด ๊ฐ’์ด ๊ฒฐ๊ณผ๊ฐ’์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์„๊นŒ? (๊ฒฐ๊ณผ๊ฐ’์˜ ๋‚จ์€ ์ž๋ฆฌ์ˆ˜๋ณด๋‹ค number์—์„œ ์ด๊ฐ’ ๋’ค์— ๋‚จ์€ ์ˆซ์ž์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋งŽ์•„์•ผํ•จ)๋ฅผ ์ฒดํฌํ•œ ๋’ค์—.. ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๊ฒ ๊ตฐ! ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉํ•œ ๊ฐ€์žฅ ํฐ ์ˆ˜์™€, number์—์„œ ์ฒ˜์Œ~ํฐ์ˆ˜๊ฐ€ ์กด์žฌํ–ˆ๋˜ ์ธ๋ฑ์Šค๊นŒ์ง€๋ฅผ ์‚ญ์ œํ•ด์ค€๋‹ค.(์ด์ „๊ฐ’์€ ํ•„์š”๋„ ์—†์„๋ฟ๋”๋Ÿฌ ํƒ์ƒ‰ ์‹œ๊ฐ„๋งŒ ๋Šฆ์ถค ใ…‹ใ…‹ ) ์˜ˆ๋ฅผ๋“ค์–ด์„œ.. "..

Prev 1 2 3 4 5 6 7 Next