๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ Python

[๋ฐฑ์ค€] ์ •๋ ฌ /ํŒŒ์ด์ฌ 2217 ๋กœํ”„, 1764 ๋“ฃ๋ณด์žก

by Tamii 2021. 4. 20.
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ 2217 ๋กœํ”„

www.acmicpc.net/problem/2217

 

2217๋ฒˆ: ๋กœํ”„

N(1 ≤ N ≤ 100,000)๊ฐœ์˜ ๋กœํ”„๊ฐ€ ์žˆ๋‹ค. ์ด ๋กœํ”„๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด๋Ÿฐ ์ €๋Ÿฐ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋กœํ”„๋Š” ๊ทธ ๊ตต๊ธฐ๋‚˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ค‘๋Ÿ‰์ด ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜

www.acmicpc.net

์ฒ˜์Œ ์ƒ๊ฐ

n ๊ฐœ์ˆ˜๋ฅผ ๋ฐ›์€ํ›„ ๋Œ๋ฉด์„œ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์„ list๋กœ ๋ฐ›์Œ

์ œ์ผ ์ž‘์€ ์ตœ๋Œ€ ์ค‘๋Ÿ‰ * n ๊ฐœ๊ฐ€  ๋กœํ”„๋“ค์˜ ์ตœ๋Œ€์ค‘๋Ÿ‰์ด๋ผ๊ณ  ์ƒ๊ฐ

import sys
input= sys.stdin.readline

n=int(input())

weight = list(int(input()) for _ in range(n))
weight.sort();

print(weight[0]*n)

์—ญ์‹œ๋‚˜ ์˜ค๋‹ต.

์˜ค๋ฅ˜: ๋กœํ”„๋ฅผ ์ „๋ถ€ ์“ด ๊ฒฝ์šฐ < ์ตœ์ ์˜ ๋กœํ”„๋ฅผ ์“ด ๊ฒฝ์šฐ์˜ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด ํด ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ฐ„๊ณผํ–ˆ๋‹ค.

 

์œ ์‹ฌํžˆ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ,

๊ฐ ๋กœํ”„๋“ค์ด ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€์ค‘๋Ÿ‰์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ํ›„์—

์ตœ๋Œ€์ค‘๋Ÿ‰ * ๋กœํ”„ ๊ฐœ์ˆ˜ (+1 ์”ฉ ์ฆ๊ฐ€)  ์ด ๊ฐ’์ด ๊ฐ€์žฅ ํฐ  ๊ฒฝ์šฐ๊ฐ€ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

 

๋‚˜์˜ ํ’€์ด

import sys
input= sys.stdin.readline

n=int(input())

weight = list(int(input()) for _ in range(n))
weight.sort(reverse=True)
max_weight=0
for i in range(len(weight)):
    if max_weight<weight[i]*(i+1):
        max_weight=weight[i]*(i+1)
print(max_weight)

weight๋ผ๋Š” list์— ์ตœ๋Œ€์ค‘๋Ÿ‰์„ ๋ฐ›์•„

๋ฐ˜๋Œ€๋กœ ์ •๋ ฌํ•œ ํ›„

์ตœ๋Œ€์ค‘๋Ÿ‰ * ์ตœ๋Œ€์ค‘๋Ÿ‰์„ ๋“ค ์ˆ˜ ์žˆ๋Š” ๋กœํ”„์˜ ๊ฐœ์ˆ˜ ๋ฅผ max_weight์— ๋„ฃ๊ณ  ๋น„๊ตํ•˜์—ฌ 

๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์–ป์–ด๋ƒˆ๋‹ค.

 

๋‹ค๋ฅธํ’€์ด

import sys
input= sys.stdin.readline

n=int(input())

weight = list(int(input()) for _ in range(n))

weight.sort()
weight_max=0
for i in weight:
    weight_max=max(i*n,weight_max)
    n-=1
print(weight_max)

๋‹ค๋ฅธ ํ’€์ด๋ฅผ ์ฐพ์•„๋‚ด๋‹ˆ weight_max๋ฅผ ๋Œ๋ฉฐ ๋ฐ”๋กœ๋ฐ”๋กœ max๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ๋‹ค.

๋‹ค๋งŒ ๋‚˜์˜ ํ’€์ด๋ณด๋‹ค ์‚ด์ง ๋Š๋ ธ๋‹ค.

๋‚ดํ’€์ด๋Š” ๋น„๊ต๋Œ€์ƒ์ด ํ•˜๋‚˜์ด๊ณ  ๋‹จ์ˆœ ์—ฐ์‚ฐ์ด์ง€๋งŒ ๋‹ค๋ฅธํ’€์ด์—์„œ๋Š” ๋งค๋ฒˆ max๋ฅผ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

 

๐Ÿ’™  ์–ด๋–ค๊ฒŒ ๋” ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ธ์ง€ ๊ณ ๋ฏผํ•˜๋Š” ์Šต๊ด€์„ ๊ธฐ๋ฅด์ž. max ๋ณด๋‹จ <  ๋‹จ์ˆœ์—ฐ์‚ฐ์ž!

 

 


๐Ÿ“Œ 1764 ๋“ฃ๋ณด์žก

www.acmicpc.net/problem/1764

 

1764๋ฒˆ: ๋“ฃ๋ณด์žก

์ฒซ์งธ ์ค„์— ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ N, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด์„œ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„๊ณผ, N+2์งธ ์ค„๋ถ€ํ„ฐ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

๋ฌธ์ œ๋ณด๊ณ  ์ข€ ์›ƒ๊ฒผ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ’€์—ˆ๋Š”๋ฐ ๋ญ”๊ฐ€ ์ฐœ์ฐœํ–ˆ๋‹ค.

์ด ์ฏค ์ด๋Ÿฐ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜จ๋‹ค๊ตฌ?

 

๋“ฃ๋„๋ชปํ•œ ์‚ฌ๋žŒ์˜ list๋ฅผ ๋ฐ›๊ณ  

๋‚˜๋ฆ„ ์‹œ๊ฐ„ ์ค„์ธ๋‹ค๊ณ  ๋ณด๋„๋ชปํ•œ ์‚ฌ๋žŒ์„ ๋ฐ›์œผ๋ฉด์„œ ๋“ฃ๋„๋ชปํ•œ ์‚ฌ๋žŒ์˜ list์—์žˆ๋‚˜ ์ฐพ์•˜์ง€๋งŒ 

list์—์„œ in์œผ๋กœ ์ฐพ๋Š”๊ฑฐ๋Š” ์—ญ์‹œ๋‚˜ ์‹œ๊ฐ„์ดˆ๊ณผ์ด๋‹ค  ใ… ใ… 

 

 

๋‚ดํ’€์ด1

import sys
input = sys.stdin.readline

h,s = map(int,input().split())

hList = [input() for _ in range(h)]

ans=[]
for i in range(s):
    never_seen = input()
    if never_seen in hList:
        ans.append(never_seen)
print(len(ans))
for i in ans:
    print(i.strip())

์—ญ์‹œ๋‚˜~~

 

๋‚ดํ’€์ด2

import sys
input = sys.stdin.readline

h,s = map(int,input().split())

hList = list(input() for _ in range(h))
sList = list(input() for _ in range(h))

hSet=set(hList)
sSet=set(sList)

ans=[]
ans = sorted(list(hSet & sSet))
print(len(ans))
for i in ans:
    print(i.strip())

 

๊ทธ๋ ‡๋‹ด list ๋ง๊ณ  set์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ž! ํ•ด์„œ ๋งŒ๋“  ๋ฌธ์ œ

list๋กœ ๋ฐ›๊ณ  -> set์œผ๋กœ ๋ฐ”๊ฟ”์„œ ๊ต์ง‘ํ•ฉํ•˜๊ณ   -> list๋กœ ๋ฐ”๊ฟ” ์ค‘๋ณต ์ œ๊ฑฐ 

์ •๋‹ต์€ ๋‚˜์™”์ง€๋งŒ ์ข‹์€ ์ฝ”๋“œ๋ผ๋Š” ๋Š๋‚Œ์€ ์—†๋‹ค ..ใ… 

 

๋‹ค๋ฅธ ํ’€์ด

import sys
input = sys.stdin.readline

def binarySearch(list,ele,low,high):
    while low<=high:
        mid = (low+high)//2
        if list[mid] == ele:
            return True
        if ele > list[mid]:
            low = mid+1
        else:
            high = mid-1

    return False



h,s = map(int,input().split())

hList = [input().strip() for _ in range(h)]
sList = [input().strip() for _ in range(s)]
hList.sort()

ans=[]
for i in sList:
    if binarySearch(hList, i, 0,h-1):
        ans.append(i)
print(len(ans))
for i in sorted(ans):
    print(i)

๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋Š”๋ฐ

์ด๋ถ„ํƒ์ƒ‰ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ  SList๋ฅผ ๋Œ๋ฉฐ ์ด๋ถ„ํƒ์ƒ‰ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด hList์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์ด ์—ญ์‹œ ์ •๋‹ต์œผ๋กœ ๋‚˜์™”์ง€๋งŒ ์‹œ๊ฐ„์ด set์„ ์ด์šฉํ•œ๊ฒƒ๋ณด๋‹ค 2๋ฐฐ๊ฐ€ ๋‚˜์™”๋‹ค.

 

์•„๋ฌด๋ž˜๋„  ์ด๋ถ„ํƒ์ƒ‰์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์—์„œ ์‹œ๊ฐ„์ด ์†Œ์š” ๋˜๋Š”๋ฐ

set์€ ์ง‘ํ•ฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ต์ง‘ํ•ฉ์—ฐ์‚ฐ์œผ๋กœ ํ•œ๋ฒˆ์— ํ•ด๊ฒฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋นจ๋ž๋˜ ๊ฒƒ๊ฐ™๋‹ค.

 

 

 

๐Ÿ’™ ์˜ค๋Š˜์€ ๋ชจ๋“  ํ’€์ด์— ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™€์„œ ๋‹นํ™ฉํ–ˆ์ง€๋งŒ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ์œ ํ˜•๋“ค์„ ์•Œ๊ฒŒ๋˜๊ณ  ํ”ผํ•˜๋Š” ์Šคํ‚ฌ์„ ์•Œ์•„๋ƒˆ๋‹ค.

๋ฐฐ์—ด์˜ ์กด์žฌ์—ฌ๋ถ€๋Š” in์ด ์•„๋‹Œ set  ๊ต์ง‘ํ•ฉ ํ˜น์€ ์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ!

max ๋ณด๋‹ค๋Š” ๋‹จ์ˆœ ์—ฐ์‚ฐ์ž๋กœ!

๋Œ“๊ธ€