본문 바로가기
  • The future is ours
반응형

전체 글56

백준 알고리즘 10807번 개수 세기 (파이썬, python) 이 문제는 주어진 숫자들 중 num으로 주어지는 숫자와 똑같은 수가 몇개가 있는지 파악하는 문제이다. 우선 a를 통해 주어지는 숫자의 개수를 정하고, list(map(int,input().split()))을 통해 리스트에 필요한 만큼의 수를 입력한다. 그 다음으로는 num으로 리스트 내의 필요한 숫자가 무엇인지 제시를 한다음 마지막으로 리스트 안에서 num과 같은 숫자가 몇개 있는지 카운트해서 출력하면 되는 매우 간단한 문제이다. /// a=int(input()) l=list(map(int,input().split())) num=int(input()) print(l.count(num)) /// 단순히 입출력 방법과 리스트에 숫자들을 필요한 만큼 넣는 list(map)구문만 안다면 어려울 것이 없는 문제이.. 2023. 8. 19.
파이썬 반복문 for, while 파이썬으로 같은 문자를 반복해서, 또는 주어진 리스트나 숫자 등을 순서대로 출력하고 싶을 때는 어떻게 할까? 일일이 각 문자의 index를 print하는 것으로 해결할 수 있겠지만, 너무나 비효율적일 것이다. 이럴때 필요한 개념이 for, while 이다. 아마 파이썬을 배울때 가장 기초가 되는 구문 중 하나가 아닐까 싶을 정도로 자주 쓰이고, 그만큼 배우게 되는 시간도 빠른 편이다. 하지만 간혹 가다가 이 구문을 이해를 못하거나, for과 while의 차이점을 모르는 사람들이 더러 있다. 그렇다면 과연 이 구문들은 어떻게 쓰이는 것일까? 먼저 while구문을 보자. while구문은 영어 표현 그대로 while의 조건에 적합한 상황이라면 계속해서 반복되는 구문이다. 예를들어 while i>1:이라는 구문.. 2023. 8. 18.
카테고리를 만들며... 과거 1년간 대학생활을 하며 참 많이 여행을 다녔다. 친구들과 부산, 안동, 경주, 제주, 대구, 서울 등 국내여행은 기본이고 나홀로 일본, 싱가포르, 프랑스, 독일, 영국, 이탈리아 등등.... 머릿속엔 아직 여행이 생생히 기억나지만 몇년이 지나도 이렇게 실감이 날까? 라는 생각에 무작정 기록해보기로 했다. 매우 천천히 올라가겠지만, 나의 여행을 기록하는 만큼 최대한 자세히, 하루하루를 기록해보고자 한다. 참고로 이 카테고리에서 사용될 모든 사진은 내가 찍은 사진들이다. 2023. 8. 18.
백준 알고리즘 2920번 음계 (파이썬, python) 이 문제는 주어진 리스트의 수가 지속적으로 상승하는지, 하락하는지, 아니면 랜덤인지만 파악하면 되는 간단한 문제이다. list(map(int,input().split()))을 이용해 리스트에 각 숫자를 넣고, for구문을 이용해 리스트의 길이만큼 리스트 내의 숫자의 순서가 상승 또는 하락, 아니면 랜덤인지 확인하면 된다. 한번 시도해보자. /// s=list(map(int,input().split())) a=0 d=0 for i in range(len(s)): if s[i]==i+1: a+=1 elif s[i]==len(s)-i: d+=1 if a==8: print("ascending") elif d==8: print("descending") else: print("mixed") /// 먼저 s를 리스트.. 2022. 5. 11.
프로그래머스 코딩테스트 연습 완주하지 못한 선수(Python) 이 문제에서 요구하는 것은 참가자들 중 탈락한 참가자의 이름을 탐색하는 것이다. 처음 이 문제를 봤을 때, 꽤나 복잡해 보였지만 마라톤 경기에 참가한 선수의 수와 참가자 중 1명을 뺀 모두가 성공했다는 전제가 깔려있기에 쉽게 풀 수 있었다. 우선 정렬과 반복문 개념만 알고있어도 충분히 풀 수 있는 문제가 아닐까 싶다. 아래에 식을 적고, 이 식에 대한 풀이를 이어나가보겠다. /// def solution(participant,completion): answer='' participant.sort() completion.sort() for i in range(len(completion)): if participant[i]!=completion[i]: answer=participant[i] break if .. 2022. 5. 5.
백준 알고리즘 2739번 구구단(파이썬, python) 이번 문제는 for구문과 사칙연산의 부호에 대해 이해하고 있다면 단번에 이해할 수 있을 문제이다. 주어진 수 n에 1부터 9까지 곱하여 출력하는 것이므로, for구문을 통해서 1부터 9까지의 수를 n에 곱해주겠다. for i in range(1,10)이렇게 하고, 주어진 수 n에 i를 곱하는 방식을 취한다면 풀기 쉬울 것으로 예상된다. 물론 i와 n모두 int이기에 에러도 발생하지 않을 것이다. /// n=int(input()) for i in range(1,10): print(n*i) /// 이렇게 조합을 해본다면 답안의 수는 출력이 된다. 하지만 문제에서 주어진 "식"은 출력이 안되기에 틀린 것으로 출력이 된다. 그렇다면 이 부분을 보완해보자. /// n=int(input()) for i in ran.. 2022. 5. 1.
시간복잡도 Big-oh (big-o) notation 점근 표기법 알고리즘에 대해 공부하다보면, 처음부터 볼 수 있는 개념이 하나 있다. 그것은 바로 시간복잡도이다. 현재 글을 적는 시점에서도, 나도 가끔 가다가 빅오표기법의 계산을 잘못하여 효율성을 잘못 따질때가 있다. 오늘은 이 시간복잡도에 대해서 알아보고자 한다. 모든 동작에는, 시간과 메모리가 필요로 한다. 이 중 시간복잡도는 프로그램을 실행할 때 소요되는 시간을 계산하는것이다. 구문, 함수의 종류 등에 의해 다양한 공식을 띄게 되는데, 크게 아래의 사진과 같은 방식으로 분류된다. O(1), O(logn), O(n), O(n!) 등과 같은 방식이 존재하며, 위의 방식 이외에 적힌 식에 따라 O(n^5) 등 다양한 파생된 결과가 출력될 수 있다. X축은 투입되는 자료의 갯수, Y축은 그 자료들을 투입한 프로그램의 .. 2022. 4. 28.
자료구조 기초 개념, 링크드리스트 Linked-list(Python, Java 등) 자료구조 Data Structure의 개념에 대해 간단히 설명해보고자 한다. 시험기간이기에 중간고사 범위에 대한 간략한 정리와 설명을 할 예정이다. 자료구조란 자료를 저장하고 '정렬'을 수월하게 하기 위한 방식이며, 일반적인 코드를 짜는 것보다 효율적으로 코드를 짤 수 있다. 리니어 방식과 non 리니어 방식이 있는데, 리니어에는 linked list, 스택, 큐 등의 방법이 존재하며, non 리니어에는 트리와 그래프 등의 방식이 존재한다. 논리니어는 시험범위가 아니기에 아직 설명을 할 수는 없고, 우선 리니어 방식의 자료구조에 대해 알아보겠다. 위의 주제 중 스택과 큐, 덱에 관한 글은 문제풀이를 하며 설명을 잠깐 한 적이 있으므로, 이번 시간에는 링크드리스트에 대해 알아보고자 한다. 흔히 리스트를 이.. 2022. 4. 17.
파이썬 str,int(Python) 이번 시간에는 str, int의 변환에 대해 알아보고자 한다. str은 문자열개념이며, int는 정수개념이라는 것은 다들 알테다. 근데 이것을 왜 비교하는지 궁금할것임이 틀림없다. 예시를 들어보겠다. /// a=1 b=4 print(a+b) c='1' d='4' print(c+d) /// 위의 두 문장의 결괏값이 같게 나올까? 아니다. 이 문장에서의 a와 b는 각각 '정수' 형태만을 띄고 있다. 이렇게 a와 b의 타입을 물어본다면, 이들은 둘다 int로, 더한다는 개념을 우리가 수학에서 배운 개념 그대로 적용이 가능하다. 하지만 아래의 식은 우리가 생각하는 방식과는 다르게 흘러간다. 이 식은, c와 d에서의 1과 4가 각각 정수로 쓰이질 않았다. 이렇게 타입을 물어본다면, 이들은 str타입으로, 더하면 .. 2022. 4. 4.
반응형