반응형

파이썬 41

[삼성sw 파이썬] 14413 격자판 칠하기

[삼성sw 파이썬] 14413 격자판 칠하기 문제N x M 크기의 직사각형 격자판에서 각 칸의 크기는 1x1 크기의 정사각형 모양이다.이 격자판을 흰색 또는 검정색으로 칠할 계획이다.N  x M 크기의 행렬 A가 있어서, Ai,j 가 ‘#’라면 격자판의 i행 j열에 있는 칸은 검은색으로 칠해야 하고, Ai,j 가 ‘.’라면 격자판의 i행 j열에 있는 칸은 흰색으로 칠해야 하며, Ai,j 가 ‘?’라면 격자판의 i행 j열에 있는 칸은 검은색으로 칠해도 되고 흰색으로 칠해도 된다.이대 인접한 두 칸의 색은 항상 다르게 할 수 있는지 판단하는 프로그램을 작성해야한다. 입력첫 번째 줄에는 테스트 케이스 수가 주어진다.각 테스트 케이스 첫번째 줄에는 N,M이 주어지고 그다음줄에는 행렬 A가 N개의 줄에 나타난다...

이미지 분류 모델 자동화 시스템

이미지 분류 모델 자동화 시스템주요 기능이미지 예측: 사용자가 업로드한 이미지를 고양이 또는 강아지로 정확하게 분류합니다.피드백 수집: 예측 결과에 대한 사용자 피드백을 수집하여 모델 학습에 활용합니다.자동 학습 시스템: 사용자 피드백을 바탕으로 모델을 자동으로 재학습하여 정확도를 향상시킵니다.폴더 관리: 학습 데이터를 효율적으로 관리하기 위한 폴더 관리 기능을 제공합니다.이렇게 4가지 기능을 중점을 두고 개발하였다. 시스템 작동 방식:이미지 업로드 및 분류: 사용자가 이미지를 업로드하면 시스템은 학습된 모델을 기반으로 이미지를 분석하고 결과를 출력합니다.오류 수정 및 재학습: 예측 결과가 잘못된 경우, 사용자가 직접 수정하고 재학습을 요청할 수 있습니다. 이때, 시스템은 사용자의 수정 내용을 학습 데이..

프로젝트 2024.10.31

[파이썬 삼성sw] 6057 그래프의 삼각형

[파이썬 삼성sw] 6057 그래프의 삼각형문제정점이 N개, 간선이 M개 있는 그래프가 주어진다. 정점에는 1번에서 N번까지의 번호가 붙어 있다.이때 i 번 정점과 j 번 정점 사이에, j번 정점과 k번 정점 사이에, k번 정점과 i번 정점 사이에 모든 간선이 있는(i, j, k)를 삼각형이라고 하자 (i 이때 삼각형 개수를 구하는 프로그램을 작성하라.입력첫 번째 줄에 테스트 케이스의 수 T 가 주어진다.각 테스트 케이스의 첫 번째 줄에는 두정수 N, M이 공백으로 구분되어 주어진다.다음 M개의 줄에는 두 정수 X, Y가 주어진다.이는 X번 정점과 Y번 정점 사이에 간선이 있다는 의미이다.출력삼각형의 개수를 출력한다.풀이나는 DFS를 이용하여 풀었다.1번 정점에서부터 시작해서 1번 정점에서 연결된 모든 ..

[파이썬 알고리즘] 플로이드 워셜(Floyd-Warshall) 알고리즘

[파이썬 알고리즘] 플로이드 워셜(Floyd-Warshall) 알고리즘 플로이드 워셜 알고리즘이란?모든 정점 쌍 사이의 최단 경로를 찾는 알고리즘으로 다익스트라 알고리즘을 정점수만큼 반복하는 거와 같은 결과값을 가지지만시간복잡도가 O(n³) 이기에 정점의 수가 적을때에는 다이스트라 알고리즘보다 빠른 결과값을 받을 수 있다. 알고리즘 동작 과정비용 테이블 초기화:모든 정점 간의 최단 거리 정보를 담는 테이블을 생성합니다. 처음에는 무한대(inf)로 설정하여, 아직 연결되지 않은 상태를 나타냅니다.간선 정보 입력:간선 정보를 입력받아, 두 정점 사이의 거리를 그래프 테이블에 입력합니다. 간선 정보는 (a, b, c) 형식으로, a에서 b로 가는 거리가 c라는 뜻입니다.자기 자신으로 가는 거리는 0으로 설정:..

알고리즘 2024.10.08

[삼성 sw 파이썬] 4371 항구에 들어오는 배

[삼성 sw 파이썬] 4371 항구에 들어오는 배 문제항구에 배가 들어오 늘 날을 '즐거운 날' 이라고 하자. 이때 각 배들은 항구를 주기적으로 방문한다. 예를 들어 주기가 3인 배는 항구에 1일 차 4일 차 7일 차 등에 방문하게 된다.1일 차부터 기록한 '즐거운 날' 들의 목록이 주어질 때 항구에 들렀던 배의 최소 수를 알아내자.(이때 모든 배는 1일 차에 방문한다.) 입력첫번째 줄에 테스트 케이스두 번째 줄부터는 각 케이스의 첫 번째 즐거운 날의 수 n이 주어진다.각 테스트 케이스의 두 번째 줄부터 n개의 줄에 걸쳐 즐거운 날의 정보가 오름 차순으로 정렬되어 주어진다. 출력각 테스트 케이스마다 항구에 들렸던 배의 최소 수를 출력한다. 풀이각 배들이 들어오는 주기가 존재하면 이때 배의 들어오는 배의 ..

[삼성 sw 파이썬] 3131. 100만 이하의 모든 소수

[삼성 sw 파이썬] 3131. 100만 이하의 모든 소수문제1 이상 100만 이하의 도든 소수를 구하는 프로그램을 작성하시오. 출력1 이상 100만 이하의 소수를 공백을 사이에 두고 한 줄에 모두 출력한다. 풀이1부터 100만 이하의 수를 하나하나씩 소수인지 판별하도록 코드를 작성하면 시간 초과가 나는 문제이다.그렇기에 소수가 나오면 그 소수의 모든 배수를 배제하는 형식으로 코드를 작성하였다.소수가 나올 경우 기록하기 위해서 100만까지 값이 0인 리스트를 만들었고만약 이 리스트의 값이 0 이면 소수 임으로 이 값의 모든 배수를 1로 바꾸면서 제외하여 100만까지의 수를 판별하도록 만들었다.코드ans=[0]*1000001for i in range(2,1000001): if ans[i]==0: ..

[삼성 sw 파이썬] 2814 최장 경로

[삼성 sw 파이썬] 2814 최장 경로문제N개의 정점과 M개의 간선으로 구성된 가중치가 없는 무방향 그래프에서 최장 경로의 길이를 계산하자.정점의 번호 1부터 N번까지 순서대로 부여된다.경로에는 같은 정점의 번호가 2번 이상 등장할 수 없다 경로 상의 인접한 점들 사이에는 반드시 간선이 존재한다.경로의 길이는 경로 상에 등장하는 정점의 개수를 나타낸다. 입력첫 줄에는 테스트케이스가 주어진다.각 테스트 케이이스의 첫 번 줄에는 두 개의 자연수 N, M이 주어진다.두 번째 줄부터 M개의 줄에 걸쳐서 그래프의 간선 정보를 나타낸다.풀이문제에서 가중치가 없는 무방향 그래프라고 주어졌으면 경로상의 가장 경로를 탐색하는 완전 탐색 문제로DFS나  BFS를 이용아여 문제를 풀 수 있다.나는 DFS르 이용하여 문제를..

[백준 파이썬] 1389 케빈 베이컨의 6단계 법칙

[백준 파이썬] 1389 케빈 베이컨의 6단계 법칙 문제케빈 베이컨의 6단계 법칙에 의하면 지구에 있는 모든 사람들은 최대 6단계 이내에서 서로 아는 사람으로 연결될 수 있다.케빈 베이컨 게임은 임의의 두 사람이 최소 몇 단계 만에 이어질 수 있는지 계산하는 게임이으로 이 게임을 했을 때 모든 사람 나오는 단계의 총 합을 케빈 베이컨의 수라고 할 때 이때 이 수가 가장 적은 사람을 찾는 문제이다. 이때 단계를 계산하는 방법으로 유저가 5명이고, 1과 3, 1과 4, 2와 3, 3과 4, 4와 5가 친구인 경우를 생각해 보자.1은 2까지 3을 통해 2단계 만에 연결될 수 있으며, 3까지는 1단계 , 4까지 1단계 , 5까지는 4를 통해 2단계만에 연결된다그러면 케빈 베이컨의 수는 2+1+1+2 = 6이다...

파이썬 클래스 사용법 및 작성법

파이썬 클래스 사용법 및 작성법사용하기 전에 클래스와 객체가 무엇인지 알아야 한다. 클래스란?클래스는 객체를 만들기 위한 설계도로 속성(필드) 행동(메서드)을  가질 수 있다.속성(필드)은 클래스에서 정의한 변수로 객체의 상태를 나타냅니다.행동(메서드)은 클래스에서 정의한 함수로 객체가 할 수 있는 동작을 나타 냅니다.class 클래스명 myname: def __init__(self,name): self.__name=name def getName(self): print("이름 : ",self.__name)이렇게 클래스를 정의하면 from 클래스가담긴 파일명 import myname(클래스명)f=myname("아리") #생성자f.getName()위 코드를 동작시키면 아리라는 이름이 출력된다..

파이썬 공부 2024.09.11

[삼성 sw 파이썬] 1945 간단한 소인수분해

[삼성 sw 파이썬] 1945 간단한 소인수분해 문제숫자 N이 주어질 때 N=2^a * 3^b * 5^c *7*d * 11^e의 형태로 표현할 수 있다.이때 a,b,c,d,e를 출력하라 풀이기본적인 구현 문제로 while를 사용하여 2,3,5,7,11 모두 다 하면서 a, b, c, d, e를 구하는 방법이 가장 기본적으로 있다 이때 while부분이 반복되기에 함수로 만들어서 재귀형태로 풀어서 문제를 풀었다.def factors(number,a,count): if number % a != 0: return [count,number] return factors(number//a,a,count+1)number은 현재수이고 a는 나눌수 count 몇 번이나 a로 나누어 버렸는지 카운트하..

반응형