목록코딩 (53)
Love Every Moment
출처 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다...
0. 계기 42서울의 c++ 과제를 풀고나서 동료 평가를 받았는데, 되도록이면 모든 함수의 반환값을 const & 로 해주면 좋겠다는 조언을 받았다. 이유는 프로그램의 크기가 커질수록 참조자로 반환할 때와 아닐 때에 변수를 복사하는 데에 드는 비용이 높아지기 때문이라고 하셨다. 그 의견에 동의하면서도 모든 경우에 그렇게 처리하면 안 되는 이유를 분명히 C++ Primer Plus 원서에서 읽었던 기억이 나서, 이참에 어떤 케이스에서 const & 로 반환하고 어떤 케이스에선 일반 변수로 반환하는게 좋은지 정리하고자 한다. 그전에 const 키워드가 함수의 어디에 위치하는지에 따른 의미도 정리해보았다. 1. const 위치에 따른 의미 (1) 메서드 뒤의 const class Foo{ int num = 1..
출처 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 가장 추천 많이 받은 풀이 def solution(id_list, report, k): answer = [0] * len(id_list) reports = {x : 0 for x in id_list} for r in set(report): reports[r.split()[1]] += 1 for r in set(report): if reports[r.split()[1]] >= k: answer[id_list.index(r.split()[0])] += ..
1. 클래스와 객체 객체 = 인스턴스, 객체를 클래스와 연관지어 설명할 때에 인스턴스라고 부른다 객체(Object)는 특정한 개념이나 모양으로 존재하는 것을 의미 게임 캐릭터를 예로 들자면 기사, 마법사, 궁수, 웹 브라우저에서는 스크롤 바, 체크박스 등이 각각의 객체가 된다 클래스(Class) 는 프로그래밍으로 객체를 만들 때에 사용하는 것으로, '속성(Attribute)'과 '메서드(Method)'를 가진다 기사라는 클래스는 체력, 마나 등의 속성과 찌르기, 베기 등의 메서드를 가진다 복잡한 문제를 잘게 나누어 객체로 만들고, 객체를 조합해서 문제를 해결하는 방식을 '객체 지향 프로그래밍'이라고 한다 2. 클래스 사용법 (1) 클래스 생성 class 클래스이름: def 메서드(self): 코드 클래스..
출처 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 ..
출처 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보..
출처 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력하라. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력하라. 예제 # 입력 Mississipi zZa z baaa # 출력 ? Z Z A 풀이 - (1) # 입력 받은 문자열을 모두 대문자화 + 리스트화 string = list(input()...
출처 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. 예제 # 입력 2 3 ABC 5 /HTP # 출력 AAABBBCCC /////HHHHHTTTTTPPPPP 풀이 - (1) # 전체 케이스 개수 cnt = int(input())..