[TIL_Carrotww] 70 - 22/12/12

유형석·2022년 12월 13일
0

TIL

목록 보기
83/138
post-thumbnail

📝Carrotww의 코딩 기록장

🧲 python 으로 json 파일 읽고 쓰기

  • 쓰기
import json
file_path = "test.json"

data = {}
data['result'] = result # result -> id들이 저장된 리스트

with open(file_path, 'w') as f:
	json.dump(data, f)

위와 같이 하면 json 형태로 저장이 된다.
원래는 txt 파일로 저장하려 했는데 id 가 여럿이여 리스트로 저장을 해주고 싶었는데

TypeError: write() argument must be str, not dict

이렇게 에러가 떠서 잘라주고 붙여주고 하는 작업을 하지 않기 위해 json 형태로 저장하기로 하였다.

내가 원하는 방식으로 저장이 잘 되었다.

json 형태로 쓸때는

json.dump(데이터, 쓸 파일 이름)

위 방식만 기억을 해주면 되겠다.
추가로

with open(file_path, 'w') as f:
	json.dump(data, f, indent=4)

위와 같이 indent로 4칸 즉 tab 을 해주면

이쁘게 정리되어서 나온다. 굳 ㅎㅎ

  • 파일 읽기
import json

file_path = "test.json"
with open(file_path, "r") as f:
	temp_result = json.load(f)

print(temp_result)
print(temp_result['result'])
print(type(temp_result['result']))


나는 리스트 형태로 가져오기를 원했었는데 리스트로 잘 가져오는 모습을 볼 수 있다.

🧲 python 알고리즘

🔍 programmers 디펜스 게임 level2
결과만 말하면 못풀었다.
최종 프로젝트 중간 발표만 지나면 다시 풀어볼 생각이다.
풀 방법이 생각나지 않아 브루트 포스로 풀었는데 역시 안됐고
제대로 실행조차 되지 않았다. ㅠㅠ
일단 코드를 제대로 완성시켜보고 이분 탐색으로 다시 풀어보려고 한다.

from collections import deque

def solution(n, k, enemy):
    queue = deque(enemy)
    use_k_index = []

    for i in range(len(enemy)):
        temp = 0
        temp_list = enemy[i:]
        j = 0
        while temp < n:
            temp += enemy[j]
            j += 1
        check_shield = [(index, enemy[i:j][index]) for index in range(len(enemy[i:j]))]
        check_shield.sort(key=lambda x:x[1], reverse=True)
        use_k_index = [check_shield[x] for x in range(k)]
        for use in use_k_index:
            if use[0] == i:
                k -= 1
                break
        else:
            n -= enemy[i]
            if n < 0:
                return i
    return len(enemy)
profile
Carrot_hyeong

0개의 댓글