CS
-
백준 15686번: 치킨 배달CS/알고리즘 2024. 2. 20. 02:00
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제 접근 완전 탐색 + 접근 문제이다. 입력값으로 주어지는 M개의 치킨 집을 골라야 한다. 치킨 거리 = 집에서 가장 가까운 치킨 집의 거리 도시의 치킨 거리 = 치킨거리의 합 M개의 치킨집을 조합한뒤 조합과 집의 좌표를 비교해 가장 가장 가까운 치킨 집을 찾는다. 각집의 치킨 거리를 모두 더해 도시의 치킨 거리를 구한다. 각 조합에 대한 도시의 치킨 거리를 비교해 가장 작..
-
얕은 복사(Shallow Copy) vs 깊은 복사(Deep Copy)CS/CS 2024. 1. 28. 23:06
얕은 복사(Shallow Copy) 객체의 데이터 멤버를 그대로 복사히자만, 포인터와 같은 참조 타입의 경우, 실제 데이터 복사가 아닌 메모리 주소가 복사된다. 이로 인해 두 객체가 동일한 메모리 주소를 공유하게 되며 하나의 객체에서 변경이 발생하면 다른 객체에도 영향을 미친다. 깊은 복사(Deep Copy) 객체의 데이터 멤버를 복사할 때, 포인터와 같은 참조 타입의 데이터 멤버의 경우 참조하는 실제 데이터까지 복사한다. 이렇게 하면 각 객체가 독립된 복사본을 가지게 되어, 하나의 객체에서 변경이 발생해도 다른 객체에 영향을 미치지 않는다. class Demo1 { int data1, data2, * p; public: Demo1() { p = new int; } Demo1(Demo1& d) { dat..
-
객체지향 개발 5대 원칙 (SOLID)CS/OOP 2024. 1. 26. 12:22
1. 단일 책임의 원칙(Single Responsibility Principle, SRP) 정의: 클래스는 하나의 책임만 가져야 한다. 적용예시: 책 계산 프로그램 먼저 Book 클래스를 만든다. public class Book { public string Name; public string AuthorName; public int Year; public int Price; public string Isbn; public Book(string name, string authorName, int year, int price, string isbn) { Name = name; AuthorName = authorName; Year = year; Price = price; Isbn = isbn; } } Invo..
-
백준 1940번 - 주몽CS/알고리즘 2023. 1. 27. 20:00
https://www.acmicpc.net/problem/1940 1940번: 주몽 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고 www.acmicpc.net 기본 조건 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 셋째 줄에는 N개의 재료들이 가진 고유한 번호(100,000보다 작거나 같은 자연수)들이 공백을 사이에 두고 주어진다. 풀이방법 이중 for문을 활용해 풀이한다. 고유한 번호는 100,00이하이므로 m..
-
백준 9996 - 한국이 그리울 땐 서버에 접속하지CS/알고리즘 2023. 1. 24. 22:30
https://www.acmicpc.net/problem/9996 9996번: 한국이 그리울 땐 서버에 접속하지 총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다. www.acmicpc.net 기본 조건 파일의 개수 N 알파벳과 별표(*)로 이러어진 패턴 N개의 파일 이름 풀이 방법 (*)로 앞부분 뒷부분을 substr()함수로 string front, end변수에 담는다. 파일이름에 앞부분 뒷부분을 담아둔 변수 fornt 와 end 비교한다. 파일이름은 front.size() 와 end.size() 더한것보다 커야한다는 예외처리를 해준다.