본문 바로가기

백준107

[백준] 15649번 N과 M(1) 사용 언어 - Python3 15649번: N과 M(1) (실버3, DFS 백트래킹 문제) 문제 ★LG CNS 21년 상반기 코테랑 유사★ 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 정답 DFS 백트래킹 재귀함수 문제 !! 15649,15450,15651,15652번은 세트로 공부 아래 백트래킹 문제 링크를 첨부합니다. (정답 풀이) [1] -> [1,2] -> [1] -> [1,3] -> [2] -> [2,1] -> [2] -> [2,2] ->.... 1. N=3, M=3을 리스트 형태로 입력받는다. .. 2023. 1. 17.
[백준] 4949번 균형잡힌 세상 사용 언어 - Python3 4949번: 균형잡힌 세상 (실버4) 문제 ★LG 전자 21년 코테랑 유사★ 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 정답 Stack 문제 !! 내 풀이는 오답이다. 1. 나는 스택은 전혀 생각하지 못함. 2. 특정 조건문을 만족했을 때 오류가 나지 않을 경우로 처리하려고 했다. try except else 3. '(' 다음에 ']'이 오면 오류라는 것을 몰랐다. 괄호가 닫히기만 하면 정답인 줄 알았다. 문제 이해를 잘못했다. 문제의 마지막 조건인 괄호.. 2023. 1. 16.
[백준] 1406번 에디터 사용 언어 - Python3 1406번: 에디터 (실버2, 자료구조-스택) 문제 ★LG CNS 22년 상반기 코테랑 유사★ 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 정답 Stack 문제 + 시간복잡도 반영 내 정답은 시간복잡도를 반영하지 못하여 시간초과로 오답처리되었다. 테스트셋을 출력했을 땐 다 정답으로 나오긴 했다. insert() 명령어도 시간복잡도가 O(N)으로 높기 때문에 사용할 수 없다. list형태로 append와 pop만을 이용하면 O(1)으로 시간복잡도를 반영할 수 있다. -> 스택개념을.. 2023. 1. 16.
[백준] 14500 테트로미노 사용 언어 - Python3 14500번: 테트로미노 (골드4, 구현/완전탐색 DFS) 문제 ★LG CNS 21년 상반기 코테, 삼성 SW 역량테스트 기출문제★ 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 정답 DFS 문제 (정답 풀이) 1. 입력값 n,m, board : 입력값 arr로 입력받은 값과 같은 크기의 행렬 visited을 만들어준다. max_value = 0 : 전체 max를 저장할 변수 -> 출력해야할 정답 board_max : 입력한 board 중에 최댓값 2. dfs 함수 정의 인자 : .. 2023. 1. 13.
[백준] 1654번 랜선 자르기 사용 언어 - Python3 1654번: 랜선 자르기 (실버2) 문제 ★LG CNS 20년 하반기 코테 문제랑 유사★ 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 정답 이분 탐색 문제 (코드 설명) 1. import sys / sys.stdin.readline() 여러줄 또는 반복문으로 입력 받는 경우는 input()은 시간초과가 발생할 수 있기 때문에 sys를 사용한다. 주피터는 오류가 나타난다. stdin 지원안하는 듯? 파이썬에서 직접 하자ㅠㅠ 2. 이진 검색 알고리즘 예.. 2023. 1. 10.
LG CNS 코테 후기 링크 및 문제 정리 프로그래머스 커리어에 사람들의 후기가 정리되어 있었다. https://career.programmers.co.kr/posts/tag/LG%20CNS 프로그래머스로 진행. (요약) 난이도는 실버1, 프로그래머스 2단계가 평균. 단순 구현 문제 한개와 어려운 문제 2~3개. 1. 20년 하반기. 프로그래머스로 진행. 2시간 / 3문제 (출처: https://kewook55.tistory.com/1 ) - 기본 구현력 문제 (백준 실버 3~1 난이도) - 위상정렬, 그래프 탐색문제 - 백준 1654번과 유사 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정.. 2023. 1. 10.
[Python3] 백준 1373번 2진수 8진수 1373번: 2진수 8진수 (브론즈1) 문제 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 정답 oct, int 함수를 사용하는 문제 내 정답1) 2진수를 10진수로 변환하고, 8진수로 변환하였으나 시간 초과로 오답처리 되었다. 보통 대부분 사람들이 이와 같은 flow로 문제를 해결하려고 한 것을 알 수 있었다. 풀이) 1. 2진수는 자릿수가 1,2,4,8,.. 이기 때문에 처음에 num을 1로 지정해주고 나중에 2씩 곱해준다. 2. 2진수 리스트의 가장 오른쪽 값부터 num 자릿수를 곱해주어 총 합으로 10진수를 구한다. 3. 10진수를 8로 나누어 나머지는 str 형태로 저장해둔다. (str로 하는 이유는 .. 2023. 1. 10.
[Python3] 백준 1357번 뒤집힌 덧셈 1357번: 뒤집힌 덧셈 (브론즈1) 문제 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net 정답 X[::-1]을 사용하면 되는 문제 [::-1]가 reverse라는 것을 또 잊어버리고, 어렵게 풀어버렸다 ㅠㅠ 맞췄으니 올려는 본다... (내 정답1 풀이) 정답2로 먼저 맞추고, 이를 함수화한게 정답1이다. X의 첫 숫자(왼쪽, 가장 큰 숫자)부터 작은 자릿수를 곱해주는 형식으로 reverse 했다. !유의할 점! 1. X입력값이 숫자라서 len이 안된다는 점! .. 2023. 1. 9.
[Python3] 백준 1356번 유진수 1356번: 팀 이름 정하기 (브론즈1, 구현) 문제 1356번: 유진수 첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다 작거나 같은 자연수이다. www.acmicpc.net 정답 리스트 원소들 곱해서 비교하는 문제! 비교적 쉬운 단순 구현 문제였다. 3번만 시도하고 맞추어서 너무 행복하다!!! (내 정답 풀이) 1. N을 앞부분 숫자와 뒷부분 숫자를 인덱싱해서 나눈다. int도 리스트형태로 인덱싱할 수 있다. 유의할 점은 range범위! 나는 더 직관적으로 1부터 마지막len(N)까지로 했는데, 뜻만 같으면 모두 가능하다. 2. 각 리스트 값 for문으로 곱해주기 3. A와 B가 같다면 yes=1. 4. for문에서 N을 모든 경우로 나눈 후에도 yes=1이면 yes 출력 아니면(한.. 2023. 1. 9.
[Python3] 백준 1296번 팀 이름 정하기 1296번: 팀 이름 정하기 (브론즈1, 구현) 문제 1296번: 팀 이름 정하기 연두는 프로그래밍 대회에 나갈 팀 이름을 정하려고 한다. 미신을 믿는 연두는 이환이에게 공식을 하나 받아왔고, 이 공식을 이용해 우승할 확률이 가장 높은 팀 이름을 찾으려고 한다. 이환 www.acmicpc.net 정답 특정 문자열 찾아서 count하는 문제! 내 풀이 방식은 count를 사용안한 형태이다. 250번은 시도해서 정답은 맞추었다 ㅎㅎ 100줄 코딩한거 오랜만이었다. (내 정답 풀이) 1. 입력 형태는 똑같다. sort를 사용해서 team이름을 사전순으로 정리한다. 2. 연두이름에서 LOVE를 찾아서 L,O,V,E 리스트에 넣어서 sum으로 총 개수를 구한다. 각 문자열의 index를 뽑았을 때 한개도 없어 오.. 2023. 1. 6.