언어/Python
-
[Python] BOJ 1012: 유기농 배추언어/Python 2024. 11. 18. 09:57
https://www.acmicpc.net/problem/1012요구사항시간 제한 1초 M x N = 250 메모리 제한 512 MB 리스트 남발해도 끄떡없게 주심최소의 배추흰지렁이 마리 수를 출력. 설계BFS 를 사용해서 해결할 수 있다. 배추가 심어져 있는 땅이 얼마나 연결되어 있느냐? 를 생각하면 된다. 백준의 1926번을 풀어봤다면 쉽게 풀었을 듯 하다.문제를 볼 때, 지렁이 배추를 생각하면 되려 헷갈려 문제의 본질을 찾고, 내가 풀었던 문제들 중 가장 비슷한 문제를 떠올리면 쉽게 풀리는 거 같다. https://studyiwthme.tistory.com/185 배추 밭을 초기화하고 배추가 심어져 있는 땅을 구하고전체 필요한 지렁이를 초기화방문 여부 처리 배열 초기화 BFS 탐색 함수를 생성하자..
-
[Python] BOJ 7576: 토마토(feat. 3일 걸렸다.)언어/Python 2024. 11. 7. 08:06
https://www.acmicpc.net/problem/7576요구사항시간제한 1초O(n**2) 10,000,000 천만번 정도 연산이 최대니깐 괜찮다. 메모리 제한 256MB 넉넉할 거 같다. 며칠이 지나야 토마토들이 모두 익는 지, 최소 일수를 구해라설계BFS 방식으로 풀자. 익은 토마토들을 따로 빼준다. 방금 든 생각인데 여기서 익은 토마토가 없다면 print(-1) exit() 하는 것도 좋을 거 같다. 그럴 필요없겠다. while queue에서 걸린다, 그래도 뭐 빨리 발견하니깐 하는 게 좋은건가? 모르겠다. 익은 토마토를 BFS 방식으로 탐색해준다. 2 중 for문을 사용해서 최대값을 구한다. 구현(사실상 최종 코드는 블로그 맨 아래 참고)from collections import deque..
-
왜 Python 에서 `list`타입이 `replace` 메소드를 지원하지 않을까?언어/Python 2024. 5. 28. 09:42
[결론]Python에서 list 타입이 replace 메소드를 지원하지 않는 이유는 list 객체가 가변 객체 (mutable object) 이기 때문입니다. 가변 객체란 그 내용을 직접 변경할 수 있는 객체를 의미합니다. 리스트는 그 내부의 요소들을 직접 수정, 추가, 삭제할 수 있는 다양한 메소드를 제공합니다. 하지만, replace 메소드는 일반적으로 문자열에서 특정 부분을 다른 부분으로 대체하기 위해 사용됩니다. 문자열은 불변 객체이기 때문에, 문자열에서 replace를 사용하면 새로운 문자열이 생성됩니다. 리스트는 가변 객체이기 때문에, 리스트 내의 특정 요소를 대체하는 작업을 직접 수행할 수 있는 여러 방법이 이미 제공되어 있으며, replace와 같은 메소드가 필요하지 않습니다. [리스트의..
-
왜 Python에서 `str`타입이 append 메소드를 지원하지 않을까?언어/Python 2024. 5. 28. 09:35
[결론]Python에서 str 타입이 append 메소드를 지원하지 않는 이유는 문자열이 불변 객체 (immutable object) 이기 때문입니다. 불변 객체란 한 번 생성되면 그 값을 변경할 수 없는 객체를 의미합니다. 문자열은 생성된 후 그 내부의 문자들을 직접 수정할 수 없으며, 새로운 문자열을 만들어 반환하는 방식으로만 변경할 수 있습니다. [예시: 불변 객체로서의 문자열]s = "hello"s.append(" world")# AttributeError: 'str' object has no attribute 'append'위 예제에서 s는 문자열 객체입니다. 하지만 str 객체에는 append 메소드가 없기 때문에 AttributeError가 발생합니다. [그럼 문자열을 수정하려면 어떻게 ..
-
[Python] 당신의 for문에서 map()이 안되는 이유언어/Python 2024. 4. 22. 20:20
상황 설명 아래 코드에 대해서 한번 생각해보고 글을 읽기 바랍니다. n = int(input()) for i in range(n): a = map(int,input().split()) print(a) 저와 같은 초보자라면 아마 아래와 같이 생각할 수도 있을 거 같습니다. n = in(input()) : 사용자로부터 입력을 받은 후 정수로 변환 for i in range(n): : n번 반복 ( 0~n-1까지) a = 공백을 기준으로 입력을 받은 뒤 정수로 변환 a 출력 5 1 1 2 2 3 3 4 4 5 5 map object at ~이라 오류가 뜹니다. 무엇이 문제였을 까요? https://stackoverflow.com/questions/37417210/lazy-evaluation-of-map 입력값..
-
[Python] List Comprehensions이란?언어/Python 2024. 4. 22. 19:06
리스트 컴프리헨션(List Comprehensions)은 파이썬에서 리스트를 간결하게 생성하는 방법 중 하나입니다. 리스트 컴프리헨션은 반복문과 조건문을 사용하여 리스트를 만들 수 있습니다.일반적으로 반복문과 조건문을 사용하여 리스트 생성하기result = []for i in range(10): result.append(i) 리스트 컴프리헨션을 사용 result = [i for i in range(10)]여기서 [i for i in range(10)]는 "0부터 9까지의 숫자를 반복하며 각 숫자를 리스트에 추가하라"는 의미입니다. 리스트 컴프리헨션은 간단하면서도 가독성이 좋아 많이 사용됩니다. 리스트 컴프리헨션 활용해 조건문과 함께 사용result = [i for i in range(10) i..
-
[Python] 유니코드란? & 활용한 문제 예시(feat.CodeUp : 6,069 평가 입력 받아 다르게 출력하기(py))언어/Python 2024. 4. 17. 08:56
유니코드(Unicode) 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 국제 표준 문자 인코딩 시스템입니다. 이것은 전 세계의 다양한 문자 집합을 컴퓨터에서 표현하기 위한 표준 방법을 제공하여, 다양한 언어와 문화를 다루는 데 사용됩니다. 간단히 말해서, 유니코드는 문자와 숫자, 기호 등을 컴퓨터에서 표현하는 데 사용되는 규칙의 모음입니다. 이는 다양한 언어의 텍스트를 하나의 시스템에서 처리하고 표시할 수 있게 해줍니다. ex) A == 65, B == 66,....등등 아래 문제의 출처는 -> https://codeup.kr/problem.php?id=6069 문제 요약 1. 평가를 A, B, C, D, 나머지 문자들 총 5가지로 평가 받는다. 2. 각 평가를 입력 받아 내..
-
[Python] print(a and b) 와 print(a & b) 차이언어/Python 2024. 4. 16. 16:23
상황 설명 해당 문제 : https://codeup.kr/problem.php?id=6060 [기초-비트단위논리연산] 비트단위로 AND 하여 출력하기(설명)(py) python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 codeup.kr 해당 문제를 a,b = map(int,input().split()) # 사용자로부터 a,b 값을 입력 받음 print(a and b) # a and b 출력 여기서 a =3, b =5 라고 가정한다면 출력값이 5가 나오는 겁니다. 제가 원하는 값은 1인데 문제를 먼저 보고 오세요 ~ 이 두 코드 모두 사용자로부터 입력받은 ..