[Python/ํŒŒ์ด์ฌ] [๐Ÿฅˆ5] ๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 7568 - ๋ฉ์น˜

keyneneยท2022๋…„ 10์›” 15์ผ
0

Python

๋ชฉ๋ก ๋ณด๊ธฐ
6/26

๐Ÿ“–[Python/ํŒŒ์ด์ฌ][๐Ÿฅˆ5] ๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 7568 - ๋ฉ์น˜

๐Ÿ“œ๋ฌธ์ œ



๐Ÿ“•ํ’€์ด๋ฐฉํ–ฅ

testcase(tc)๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ณ  tc๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์„œ ๋ชธ๋ฌด๊ฒŒ(a),ํ‚ค(b)๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ person์ด๋ผ๋Š” 1์ฐจ์›๋ฐฐ์—ด์— [a,b]ํ˜•์‹์œผ๋กœ ์ €์žฅํ•ด์„œ 2์ฐจ์›๋ฐฐ์—ด์„ ๋งŒ๋“ค์ž
person[0]์ธ๋ฑ์Šค๋ฅผ person[0~4]๋ฅผ ์ฐจ๋ก€๋กœ 2์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋น„๊ตํ•ด์ฃผ์ž

ex)
	 1๋ฐ˜๋ณต๋ฌธ         2๋ฐ˜๋ณต๋ฌธ
    person[0] โ†’ person[0~4]๋น„๊ต, 
    person[1] โ†’ person[0~4]๋น„๊ต ...

2์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์—์„œ person[0]์ด person[0~4]๋ณด๋‹ค ์ž‘์œผ๋ฉด ํšŸ์ˆ˜๋งˆ๋‹ค ๋“ฑ์ˆ˜๋ฅผ +1 ํ•ด์ฃผ๊ณ  ์ถœ๋ ฅํ•˜์ž


๐Ÿ“์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์ˆœ์„œ (๋ธŒ๋ฃจํŠธํฌ์Šค)

  1. testcase(tc)์™€ person=[] ์ €์žฅ ํ›„, person[]์— [a,b]ํ˜•ํƒœ๋กœ(2์ฐจ์›๋ฐฐ์—ด) size์ž…๋ ฅ๊ฐ’ ์ €์žฅ
  2. 2์ค‘์ฒฉ for ๋ฌธ์œผ๋กœ ๋น„๊ต๋Œ€์ƒ person[0](ex/ 55,185)๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ person[0~4]์™€ ๋น„๊ต,
    person[0]์ด person[0~4]๋ณด๋‹ค a, b๊ฐ’ ๋‘˜ ๋‹ค ์ž‘์œผ๋ฉด(๋ฉ์น˜๊ฐ€ ์ž‘์œผ๋ฉด) ๋“ฑ์ˆ˜ +1
    (๋“ฑ์ˆ˜๊ฐ€ ๋†’์„์ˆ˜๋ก ๋ฉ์น˜๊ฐ€ ์ž‘๋‹ค๋Š” ๋œป์ด๋‹ˆ๊นŒ)

๐Ÿ’ป๊ฒฐ๊ณผ์ฝ”๋“œ

import sys

tc = int(sys.stdin.readline().strip())
person = []

#2์ฐจ์› ๋ฐฐ์—ด๋กœ ์ž…๋ ฅ๊ฐ’ ์ €์žฅ
for _ in range(tc):
    a, b = map(int, sys.stdin.readline().split())
    person.append([a,b]) 
    #[[a1,b1], [a2,b2] ...]

for size in person: #๋น„๊ต๋Œ€์ƒ : person[0](55,185)
    rank = 1
    for comp in person: #๋น„๊ตํ• ๋Œ€์ƒ : person[0~4](55,185 ~ 46,155)
        if size[0] < comp[0] and size[1] < comp[1]:
            rank += 1
    print(rank, end=' ')

โœ๏ธ1. ๊ฐ ์ž…๋ ฅ๊ฐ’ ์ €์žฅ (person์€ 2์ฐจ์›๋ฐฐ์—ด)

import sys

tc = int(sys.stdin.readline().strip())
person = []

for _ in range(tc):
    a, b = map(int, sys.stdin.readline().split())
    person.append([a,b])
2์ฐจ์›๋ฐฐ์—ด๋กœ ์ดˆ๊ธฐํ™”/์„ ์–ธ/์ €์žฅ ๋“ฑ ๋ฐฉ๋ฒ•์€ ๋งŽ๊ฒ ์ง€๋งŒ,
์˜ˆ์ œ์™€ ๊ฐ™์ด ๋น„๊ต๋Œ€์ƒ์ด "ํ•œ์ค„์— ํ•œ์ผ€์ด์Šค์”ฉ" ์ž…๋ ฅ๋  ๊ฒฝ์šฐ
person = [] ์ด๋ผ๋Š” ๋นˆ list ์•ˆ์— [a,b]ํ˜•ํƒœ๋กœ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•  ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ•จ
(tc๋ฅผ ์ œ์ผ ์ฒ˜์Œ ๋ฐ›๊ธฐ๋„ ํ–ˆ์œผ๋‹ˆ๊นŒ, ๋ฐ˜๋ณต๋ฌธ์„ tc๊นŒ์ง€ ๋ฐ›์œผ๋ฉด์„œ ์ž…๋ ฅ๋ฐ›์Œ)

โœ๏ธ2. 2์ค‘์ฒฉ๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฆฌ๋ฉด์„œ ๋ฉ์น˜๊ฐ’ ๋น„๊ต

#๋น„๊ต๋Œ€์ƒ person[0]
for size in person:
    rank = 1
    
    #๋น„๊ตํ• ๋Œ€์ƒ person[0~4]
    for comp in person:
        if size[0] < comp[0] and size[1] < comp[1]:
            rank += 1
    print(rank, end=' ')
โ€ป๋ฉ์น˜๊ฐ€ ์ž‘์€์ˆœ์—์„œ ๋“ฑ์ˆ˜๋ฅผ +1 ํ•  ์ƒ๊ฐ์„ ํ•˜์ง€๋ง๊ณ , ์ œ์ผ ํฌ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  -1 ์”ฉ ๊ณ„์‚ฐํ•˜๋ฉด ํŽธํ•จ

1. ์šฐ์„  ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค ๋ฉ์น˜๊ฐ’์„ rank=1๋กœ ๊ณ ์ •
   : ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด์„œ ๋น„๊ต๋Œ€์ƒ์ด ๋ฉ์น˜๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด (if True๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด) 1๋“ฑ์ด๋‹ˆ๊นŒ 
2. ๋ฉ์น˜๋ฅผ ๋น„๊ตํ•˜๋ฉด์„œ size[0](๋ชธ๋ฌด๊ฒŒ) ์™€ size[1](ํ‚ค) ๋‘˜ ๋‹ค ์ž‘์œผ๋ฉด rank+1
   : ๋น„๊ต๋Œ€์ƒ์ด ๋น„๊ตํ•˜๋Š”๋Œ€์ƒ๋ณด๋‹ค ๋ฉ์น˜๊ฐ€ ์ž‘์œผ๋ฉด 2๋“ฑ, 3๋“ฑ, 4๋“ฑ ... ๋“ฑ์ˆ˜๊ฐ€ ๋‚ฎ์•„์ง€๋‹ˆ๊นŒ

๐Ÿ“š๊ธฐ์กด ๋‚ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ค๋ฅ˜์™€ ์ •๋ฆฌ

  1. sort()๋กœ ๋Œ€์ƒ๋“ค์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด๋†“๊ณ  ์ˆœ์„œ๋Œ€๋กœ ๋“ฑ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ ค๊ณ  ํ–ˆ์Œ
    โŒ ๋ชธ๋ฌด๊ฒŒ๋Š” ์ž‘๊ณ  ํ‚ค๋Š” ํฐ ๊ฒฝ์šฐ๋„ ๋“ฑ์ˆ˜๋ฅผ ์ฒดํฌํ•ด๋ฒ„๋ ค์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  2. sort() ํ›„ ํ‚ค๋ฅผ ๋น„๊ตํ•˜๋ฉด์„œ ํ‚ค๊นŒ์ง€ ์ž‘์œผ๋ฉด ๋“ฑ์ˆ˜๋ฅผ -1 ํ•˜๋ ค๊ณ  ํ–ˆ์Œ
    โŒ ํ‚ค๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ, ๋ชธ๋ฌด๊ฒŒ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ ๋Š˜์–ด๋‚˜๋ฉด์„œ ๋ณต์žกํ•ด์ง

๐Ÿคฆ๐Ÿปโ€โ™€๏ธ์™œ sort()์— ์ง‘์ฐฉํ–ˆ์„๊นŒ?
๊ทธ๋ƒฅ ์ „์ผ€์ด์Šค ๋น„๊ต(๋ธŒ๋ฃจํŠธํฌ์Šค)์™€ ๋™์‹œ์— ๋“ฑ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉด ํŽธํ•  ๊ฒƒ์„...


โ€ป2์ฐจ์›๋ฐฐ์—ด for๋ฌธ ํƒ์ƒ‰๊ณผ์ •

์ด๊ฑด ๋‚ด ์Šค์Šค๋กœ ์ž๊พธ ํ—ท๊ฐˆ๋ ค์„œ ํ•˜๋Š” ์ •๋ฆฌ..

imoprt sys

person = [[a, b], [c, d]]

for i in person:
  print(i)  #๊ฒฐ๊ณผ [a, b]\n [c, d]
  print(person)  #๊ฒฐ๊ณผ [[a, b], [c, d]]\n [[a, b], [c, d]]
1. for i in person > i
   : person ์•ˆ์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฐ˜ํ™˜ํ•จ 
     (person์˜ ํฌ๊ธฐ๋งŒํผ 0~n๊นŒ์ง€์˜ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜)
   : person[0] = [a,b]  /  person[1] = [c,d] ์ด๋ฏ€๋กœ
   
2. for i in person > person
   : person list ์ž์ฒด๋ฅผ person์˜ ํฌ๊ธฐ๋งŒํผ ๋ฐ˜ํ™˜ํ•จ
   : person = [[a, b], [c, d]] ์ด๋ฏ€๋กœ [[a, b], [c, d]]\n [[a, b], [c, d]]

ํ•™๊ณผ ๊ณผ์ •์—์„œ C์–ธ์–ด๋กœ ์ฒ˜์Œ ์ฝ”๋”ฉ์„ ๋ฐฐ์› ๋‹ค๋ณด๋‹ˆ, for in ๋ฌธ์ด ์–ด์ƒ‰ํ•˜๋‹ค
for()๋ฌธ์€ ์ผ๋ฐ˜์ ์œผ๋กœ i๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋ฐฐ์—ด์˜ index๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ,
for i in person > i๋Š” "0,1,2,3..."์ผ ๊ฒƒ์ด๋ผ๋Š” ๊ณ ์ •๊ด€๋…์ด ๋ถ€๋ฅธ ์˜ค๋ฅ˜...

๐Ÿ‘‰๐Ÿป for in ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋ณ€์ˆ˜(์ผ๋ฐ˜์ ์œผ๋กœ i)๊ฐ’์€
๋ฐฐ์—ด์˜ ํ•œ ์š”์†Œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์„ ๊นŒ๋จน์ง€ ๋ง์ž

2์ฐจ์› ๋ฐฐ์—ด์—์„œ 1์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์˜ i๊ฐ’์€ 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•œ ์š”์†Œ(์ค„)์„ ์˜๋ฏธํ•œ๋‹ค
(์œ„ person์—์„œ๋Š” [a,b]์™€ [c,d]๋ฅผ ์˜๋ฏธ)
๋งŒ์•ฝ ์œ„ ์˜ˆ์ œ์—์„œ a, b, c, d ์ด๋ ‡๊ฒŒ ๊บผ๋‚ด๊ณ  ์‹ถ๋‹ค๋ฉด 2์ค‘์ฒฉ ๋ฐฐ์—ด์˜ ๋ณ€์ˆ˜๊ฐ’์„ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค
for i in person:
	print(i) #[a,b]\n [c,d]

for i in person:
	for j in i: #i=0 โ†’ [a,b]์—์„œ์˜ ์š”์†Œ๋ฅผ ํ˜ธ์ถœ, i=1 โ†’ [c,d]์—์„œ์˜ ์š”์†Œ๋ฅผ ํ˜ธ์ถœ
		print(j)  #๊ฒฐ๊ณผ a\n b\n c\n d 

์ด๋งŒํ•˜๋ฉด ์ข€ ์ดํ•ดํ•˜๊ณ  ์™ธ์šฐ์ž,..

profile
keynene

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